From de302b46ae1d9ad786be70a35cc3d10542d0e43c Mon Sep 17 00:00:00 2001 From: greg7mdp Date: Fri, 5 May 2023 15:51:54 -0400 Subject: [PATCH 1/6] use boost as submodule --- CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index de1a7ef..d0adcf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,9 @@ set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads) -find_package(Boost 1.67 REQUIRED COMPONENTS program_options) +if(NOT boost_headers_SOURCE_DIR) + find_package(Boost 1.67 REQUIRED COMPONENTS program_options) +endif() if( APPLE ) # Apple Specific Options Here @@ -46,7 +48,7 @@ add_library( appbase ${HEADERS} ) -target_link_libraries( appbase Boost::program_options Threads::Threads) +target_link_libraries( appbase Boost::asio Boost::signals2 Boost::program_options Boost::unit_test_framework Threads::Threads) target_include_directories( appbase PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") From e785cc75aebda9a048f657ce4244014b40139fea Mon Sep 17 00:00:00 2001 From: greg7mdp Date: Fri, 5 May 2023 17:11:47 -0400 Subject: [PATCH 2/6] rearrange boost dependencies order. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d0adcf7..6d4f585 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,7 @@ add_library( appbase ${HEADERS} ) -target_link_libraries( appbase Boost::asio Boost::signals2 Boost::program_options Boost::unit_test_framework Threads::Threads) +target_link_libraries( appbase Boost::asio Boost::signals2 Boost::program_options Boost::unit_test_framework Boost::signals2 Threads::Threads) target_include_directories( appbase PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") From b9472c58c8d32b8e816cb4a8480d5b454f1bdbf4 Mon Sep 17 00:00:00 2001 From: greg7mdp Date: Mon, 8 May 2023 16:10:37 -0400 Subject: [PATCH 3/6] Update `boost` component check as per PR comment. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d4f585..c7d0244 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads) -if(NOT boost_headers_SOURCE_DIR) +if(NOT TARGET Boost::program_options) find_package(Boost 1.67 REQUIRED COMPONENTS program_options) endif() From 2ddf3f8e4fe61ba68029c1c7354c1e87397103b3 Mon Sep 17 00:00:00 2001 From: greg7mdp Date: Thu, 6 Jul 2023 09:59:16 -0400 Subject: [PATCH 4/6] Update `find_package()` to include all boost components we use. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87e7521..3da1816 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads) if(NOT TARGET Boost::program_options) - find_package(Boost 1.67 REQUIRED COMPONENTS program_options system) + find_package(Boost 1.67 REQUIRED COMPONENTS asio signals2 program_options unit_test_framework signals2 system) endif() if( APPLE ) From 1b08148d8c56e77ad2826a9b117804a683e2b46d Mon Sep 17 00:00:00 2001 From: greg7mdp Date: Thu, 6 Jul 2023 10:18:49 -0400 Subject: [PATCH 5/6] Undo previous change --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3da1816..e3b6109 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads) if(NOT TARGET Boost::program_options) - find_package(Boost 1.67 REQUIRED COMPONENTS asio signals2 program_options unit_test_framework signals2 system) + find_package(Boost 1.67 REQUIRED COMPONENTS program_options system) endif() if( APPLE ) @@ -48,7 +48,7 @@ add_library( appbase ${HEADERS} ) -target_link_libraries( appbase PUBLIC Boost::asio Boost::signals2 Boost::program_options Boost::unit_test_framework +target_link_libraries( appbase PUBLIC Boost::asio Boost::program_options Boost::unit_test_framework Boost::signals2 Boost::system Threads::Threads) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9) From f078f79ac031837a312db4dc54903fe4104cf859 Mon Sep 17 00:00:00 2001 From: greg7mdp Date: Thu, 6 Jul 2023 10:55:44 -0400 Subject: [PATCH 6/6] Use targets from boost submodule only if present. --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e3b6109..f5fd646 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,8 +48,12 @@ add_library( appbase ${HEADERS} ) -target_link_libraries( appbase PUBLIC Boost::asio Boost::program_options Boost::unit_test_framework - Boost::signals2 Boost::system Threads::Threads) +target_link_libraries( appbase PUBLIC Boost::program_options Boost::system Threads::Threads) + +if(TARGET Boost::asio) + target_link_libraries( appbase PUBLIC Boost::asio Boost::unit_test_framework Boost::signals2 ) +endif() + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9) target_link_libraries( appbase PUBLIC stdc++fs )