Skip to content

Commit ade8abf

Browse files
Merge pull request #41 from WebPlatformForEmbedded/development/cmake-enhancements
Development/cmake enhancements
2 parents 06c6896 + 266eb46 commit ade8abf

File tree

11 files changed

+84
-68
lines changed

11 files changed

+84
-68
lines changed

CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# See the License for the specific language governing permissions and
1717
# limitations under the License.
1818

19-
cmake_minimum_required(VERSION 3.3)
19+
cmake_minimum_required(VERSION 3.15)
2020
project(Libraries)
2121

2222
find_package(Thunder)
@@ -31,14 +31,14 @@ if(ENABLE_STRICT_COMPILER_SETTINGS)
3131
set(CMAKE_STRICT_COMPILER_SETTINGS "-Weverything -Wextra -Wpedantic -Werror")
3232
set(CMAKE_STRICT_CXX_COMPILER_SETTINGS "${CMAKE_STRICT_COMPILER_SETTINGS} -Wnon-virtual-dtor")
3333
elseif(${CMAKE_COMPILER_IS_GNUCXX})
34-
message(STATUS "Compiling with GCC")
34+
message(VERBOSE "Compiling with GCC")
3535
set(CMAKE_STRICT_COMPILER_SETTINGS "-Wall -Wextra -Wpedantic -Werror")
3636
set(CMAKE_STRICT_CXX_COMPILER_SETTINGS "${CMAKE_STRICT_COMPILER_SETTINGS} -Wnon-virtual-dtor")
3737
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
38-
message(STATUS "Compiling with MS Visual Studio")
38+
message(VERBOSE "Compiling with MS Visual Studio")
3939
set(CMAKE_STRICT_COMPILER_SETTINGS "/W4")
4040
else()
41-
message(STATUS "Compiler ${CMAKE_CXX_COMPILER_ID}")
41+
message(VERBOSE "Compiler ${CMAKE_CXX_COMPILER_ID}")
4242
endif()
4343
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_STRICT_CXX_COMPILER_SETTINGS}")
4444
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_STRICT_COMPILER_SETTINGS}")

Source/asconnector/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
cmake_minimum_required( VERSION 3.10.3 )
22

3-
project( asconnector )
3+
project(asconnector
4+
VERSION 0.0.1
5+
DESCRIPTION "AS connector"
6+
LANGUAGE CXX)
47

58
option( ENABLE_BREAKPAD_MINIDUMP "Enables the support for Google Breakpad minidump" ON )
69

@@ -40,7 +43,7 @@ add_subdirectory( dbus )
4043
add_subdirectory( asservice )
4144

4245
if ( ENABLE_BREAKPAD_MINIDUMP )
43-
message( STATUS "ENABLE_BREAKPAD_MINIDUMP is on" )
46+
message(VERBOSE "ENABLE_BREAKPAD_MINIDUMP is on" )
4447

4548
# Find the breakpad library
4649
find_package( breakpad REQUIRED )

Source/bluetooth/CMakeLists.txt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18-
cmake_minimum_required(VERSION 3.3)
18+
cmake_minimum_required(VERSION 3.15)
1919

2020
find_package(Thunder)
2121
find_package(${NAMESPACE}Core REQUIRED)
2222
find_package(${NAMESPACE}Messaging REQUIRED)
2323
find_package(CompileSettingsDebug CONFIG REQUIRED)
2424

25-
project(${NAMESPACE}Bluetooth)
26-
project_version(1.0.0)
25+
project(${NAMESPACE}Bluetooth
26+
VERSION 1.0.0
27+
DESCRIPTION "Bluetooth abstraction that communicates directly to a HCI socket"
28+
LANGUAGES CXX)
29+
2730
set(TARGET ${PROJECT_NAME})
2831
message("Setup ${TARGET} v${PROJECT_VERSION}")
2932

@@ -35,7 +38,7 @@ option(BLUETOOTH_AUDIO_SUPPORT "Include audio sink/source support" OFF)
3538

3639
find_package(Bluez5UtilHeaders REQUIRED)
3740

38-
add_library(${TARGET} SHARED
41+
add_library(${TARGET}
3942
HCISocket.cpp
4043
UUID.cpp
4144
Definitions.cpp
@@ -105,13 +108,13 @@ if(${NO_INCLUSIVE_LANGUAGE})
105108
endif()
106109

107110
install(
108-
TARGETS ${TARGET} EXPORT ${TARGET}Targets # for downstream dependencies
109-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # static lib
110-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # shared lib
111-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # binaries
112-
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # for mac
113-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/bluetooth COMPONENT devel # headers for mac (note the different component -> different package)
114-
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE} # default include path
111+
TARGETS ${TARGET} EXPORT ${TARGET}Targets
112+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Development
113+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development
114+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
115+
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
116+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/bluetooth COMPONENT ${NAMESPACE}_Development
117+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}
115118
)
116119

117120
InstallPackageConfig(

Source/bluetooth/audio/CMakeLists.txt

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18-
cmake_minimum_required(VERSION 3.3)
18+
cmake_minimum_required(VERSION 3.15)
1919

2020
find_package(Thunder)
2121
find_package(${NAMESPACE}Core REQUIRED)
2222
find_package(${NAMESPACE}Messaging REQUIRED)
2323
find_package(CompileSettingsDebug CONFIG REQUIRED)
2424

25-
project(${NAMESPACE}BluetoothAudio)
26-
project_version(1.0.0)
25+
project(${NAMESPACE}BluetoothAudio
26+
VERSION 1.0.0
27+
DESCRIPTION "Bluetooth audio library"
28+
LANGUAGES CXX)
29+
2730
set(TARGET ${PROJECT_NAME})
2831
message("Setup ${TARGET} v${PROJECT_VERSION}")
2932

@@ -46,7 +49,7 @@ set(PUBLIC_HEADERS
4649
bluetooth_audio.h
4750
)
4851

49-
add_library(${TARGET} SHARED
52+
add_library(${TARGET}
5053
SDPSocket.cpp
5154
SDPProfile.cpp
5255
AVDTPSocket.cpp
@@ -60,7 +63,7 @@ target_link_libraries(${TARGET}
6063
CompileSettingsDebug::CompileSettingsDebug
6164
${NAMESPACE}Core::${NAMESPACE}Core
6265
${NAMESPACE}Messaging::${NAMESPACE}Messaging
63-
${SBC_LIBRARIES}
66+
SBC::SBC
6467
)
6568

6669
set_target_properties(${TARGET}
@@ -96,18 +99,18 @@ include(CheckStructHasMember)
9699
check_struct_has_member("struct mgmt_ltk_info" central "../include/bluetooth/bluetooth.h;../include/bluetooth/mgmt.h" NO_INCLUSIVE_LANGUAGE LANGUAGE C)
97100

98101
if(${NO_INCLUSIVE_LANGUAGE})
99-
message(STATUS "Your version of bluez don't uses inclusive language anymore")
102+
message(VERBOSE "Your version of bluez don't uses inclusive language anymore")
100103
target_compile_definitions(${TARGET} PUBLIC NO_INCLUSIVE_LANGUAGE)
101104
endif()
102105

103106
install(
104-
TARGETS ${TARGET} EXPORT ${TARGET}Targets # for downstream dependencies
105-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # static lib
106-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # shared lib
107-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # binaries
108-
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # for mac
109-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/bluetooth/audio COMPONENT devel
110-
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE} # default include path
107+
TARGETS ${TARGET} EXPORT ${TARGET}Targets
108+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Development
109+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development
110+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
111+
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
112+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/bluetooth/audio COMPONENT ${NAMESPACE}_Development
113+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}
111114
)
112115

113116
install(
@@ -117,7 +120,7 @@ install(
117120

118121
InstallPackageConfig(
119122
TARGETS ${TARGET}
120-
DESCRIPTION "Bluetooth audio library"
123+
DESCRIPTION "${PROJECT_DESCRIPTION}"
121124
)
122125

123126
InstallCMakeConfig(

Source/bluetooth/audio/cmake/FindSBC.cmake

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@
2222
# SBC_LIBRARIES - The libraries needed to use libsbc
2323

2424
find_package(PkgConfig)
25-
pkg_check_modules(SBC REQUIRED sbc)
25+
pkg_check_modules(SBC REQUIRED sbc IMPORTED_TARGET)
2626

2727
include(FindPackageHandleStandardArgs)
28-
find_package_handle_standard_args(sbc DEFAULT_MSG SBC_LIBRARIES SBC_INCLUDE_DIRS)
28+
find_package_handle_standard_args(SBC DEFAULT_MSG SBC_LIBRARIES SBC_INCLUDE_DIRS)
2929

3030
mark_as_advanced(SBC_FOUND SBC_LIBRARIES SBC_INCLUDE_DIRS)
3131

32+
if(SBC_FOUND)
33+
add_library(SBC::SBC ALIAS PkgConfig::SBC)
34+
endif()

Source/bluetooth/cmake/FindBluez5UtilHeaders.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ set(BLUEZ_INCLUDE_DIRS)
4343
foreach(_header ${NEEDED_BLUEZ_HEADERS})
4444
find_path(_header_path bluetooth/${_header})
4545
if(_header_path)
46-
message(TRACE "Found ${_header} in ${_header_path}")
46+
message(VERBOSE "Found ${_header} in ${_header_path}")
4747
list(APPEND BLUEZ_INCLUDE_DIRS ${_header_path})
4848
endif()
4949
endforeach()

Source/bluetooth/gatt/CMakeLists.txt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18-
cmake_minimum_required(VERSION 3.3)
18+
cmake_minimum_required(VERSION 3.15)
1919

2020
find_package(Thunder)
2121
find_package(${NAMESPACE}Core REQUIRED)
2222
find_package(${NAMESPACE}Messaging REQUIRED)
2323
find_package(CompileSettingsDebug CONFIG REQUIRED)
2424

25-
project(${NAMESPACE}BluetoothGATT)
26-
project_version(1.0.0)
25+
project(${NAMESPACE}BluetoothGATT
26+
VERSION 1.0.0
27+
DESCRIPTION "Bluetooth GATT library"
28+
LANGUAGES CXX)
29+
2730
set(TARGET ${PROJECT_NAME})
2831
message("Setup ${TARGET} v${PROJECT_VERSION}")
2932

@@ -34,7 +37,7 @@ set(PUBLIC_HEADERS
3437
bluetooth_gatt.h
3538
)
3639

37-
add_library(${TARGET} SHARED
40+
add_library(${TARGET}
3841
GATTSocket.cpp
3942
GATTProfile.cpp
4043
)
@@ -79,23 +82,23 @@ include(CheckStructHasMember)
7982
check_struct_has_member("struct mgmt_ltk_info" central "../include/bluetooth/bluetooth.h;../include/bluetooth/mgmt.h" NO_INCLUSIVE_LANGUAGE LANGUAGE C)
8083

8184
if(${NO_INCLUSIVE_LANGUAGE})
82-
message(STATUS "Your version of bluez don't uses inclusive language anymore")
85+
message(VERBOSE "Your version of bluez don't uses inclusive language anymore")
8386
target_compile_definitions(${TARGET} PUBLIC NO_INCLUSIVE_LANGUAGE)
8487
endif()
8588

8689
install(
87-
TARGETS ${TARGET} EXPORT ${TARGET}Targets # for downstream dependencies
88-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # static lib
89-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # shared lib
90-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # binaries
91-
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # for mac
92-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/bluetooth/gatt COMPONENT devel
93-
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE} # default include path
90+
TARGETS ${TARGET} EXPORT ${TARGET}Targets
91+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Development
92+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development
93+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
94+
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
95+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/bluetooth/gatt COMPONENT ${NAMESPACE}_Development
96+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}
9497
)
9598

9699
InstallPackageConfig(
97100
TARGETS ${TARGET}
98-
DESCRIPTION "Bluetooth GATT library"
101+
DESCRIPTION "${PROJECT_DESCRIPTION}"
99102
)
100103

101104
InstallCMakeConfig(

Source/broadcast/CMakeLists.txt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,24 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18-
cmake_minimum_required(VERSION 3.3)
18+
cmake_minimum_required(VERSION 3.15)
1919

2020
find_package(Thunder)
2121
find_package(${NAMESPACE}Core REQUIRED)
2222
find_package(CompileSettingsDebug CONFIG REQUIRED)
2323

24-
project(${NAMESPACE}Broadcast)
25-
project_version(1.0.0)
24+
project(${NAMESPACE}Broadcast
25+
VERSION 1.0.0
26+
DESCRIPTION "Abstraction to parse DVB tables"
27+
LANGUAGES CXX)
28+
2629
set(TARGET ${PROJECT_NAME})
2730
message("Setup ${TARGET} v${PROJECT_VERSION}")
2831
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
2932

3033
find_package(NXCLIENT QUIET)
3134

32-
add_library(${TARGET} SHARED
35+
add_library(${TARGET}
3336
ProgramTable.cpp
3437
Definitions.cpp
3538
TunerAdministrator.cpp
@@ -62,7 +65,6 @@ target_link_libraries(${TARGET}
6265
${NAMESPACE}Core::${NAMESPACE}Core
6366
)
6467

65-
6668
if(NXCLIENT_FOUND)
6769
find_package(NEXUS REQUIRED)
6870

@@ -89,7 +91,6 @@ else()
8991
target_sources(${TARGET} PRIVATE Implementation/V4L/Tuner.cpp)
9092
endif()
9193

92-
9394
set_target_properties(${TARGET} PROPERTIES
9495
CXX_STANDARD 11
9596
CXX_STANDARD_REQUIRED YES
@@ -110,12 +111,12 @@ target_include_directories( ${TARGET}
110111
# Install ARTIFACTS:
111112
# ===========================================================================================
112113
install(
113-
TARGETS ${TARGET} EXPORT ${TARGET}Targets # for downstream dependencies
114-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # static lib
115-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libs # shared lib
116-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # binaries
117-
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libs # for mac
118-
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/broadcast COMPONENT devel # for mac
114+
TARGETS ${TARGET} EXPORT ${TARGET}Targets
115+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Development
116+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${NAMESPACE}_Runtime NAMELINK_COMPONENT ${NAMESPACE}_Development
117+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
118+
FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Runtime
119+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/broadcast COMPONENT ${NAMESPACE}_Development
119120
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/broadcast # headers
120121
)
121122

@@ -124,10 +125,9 @@ install(
124125
# ===========================================================================================
125126
InstallPackageConfig(
126127
TARGETS ${TARGET}
127-
DESCRIPTION "Broadcast library" )
128+
DESCRIPTION "${PROJECT_DESCRIPTION}" )
128129

129130
InstallCMakeConfig(
130131
TARGETS ${TARGET})
131132

132-
133133
add_subdirectory(test)

Source/broadcast/test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ target_link_libraries(BroadcastTester
2626
${NAMESPACE}Core::${NAMESPACE}Core
2727
)
2828

29-
install(TARGETS BroadcastTester DESTINATION ${CMAKE_INSTALL_BINDIR})
29+
install(TARGETS BroadcastTester DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${NAMESPACE}_Test)

Source/compositorbuffer/CMakeLists.txt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18-
project(CompositorBufferType LANGUAGES CXX)
19-
20-
cmake_minimum_required(VERSION 3.12)
18+
cmake_minimum_required(VERSION 3.15)
2119

2220
find_package(Thunder)
2321

24-
project_version(1.0.0)
22+
project(CompositorBufferType
23+
VERSION 1.0.0
24+
DESCRIPTION "Abstraction to share graphics/video buffers between different processes"
25+
LANGUAGES CXX)
2526

2627
set(MODULE_NAME ${NAMESPACE}${PROJECT_NAME})
2728

@@ -43,7 +44,7 @@ target_compile_features(${MODULE_NAME} INTERFACE cxx_std_11)
4344
install(TARGETS ${MODULE_NAME} EXPORT ${MODULE_NAME}Targets)
4445

4546
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/compositorbuffer/CompositorBufferType.h
46-
DESTINATION include/${NAMESPACE}/compositorbuffer)
47+
DESTINATION include/${NAMESPACE}/compositorbuffer COMPONENT ${NAMESPACE}_Development)
4748

4849
include(HeaderOnlyInstall)
4950

0 commit comments

Comments
 (0)