cmake_minimum_required(VERSION 3.28 FATAL_ERROR)
+# Modern Boost integration (CMake 3.30+)
+# Use CMake's built-in Boost support instead of deprecated FindBoost module
+# For CMake < 3.30, keep old behavior to avoid errors
+if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.30)
+ cmake_policy(SET CMP0167 NEW)
+endif()
+
# project: definitions
project(pingcheck)
set(VERSION 0.8)
# package: find external packages
include(FindPkgConfig)
-# package: required boost libraries
-set(Boost_USE_STATIC_LIBS OFF)
-set(Boost_USE_MULTITHREADED OFF)
-set(Boost_USE_STATIC_RUNTIME OFF)
-
-find_package(Boost 1.44 COMPONENTS filesystem program_options system serialization date_time REQUIRED)
+# package: required boost libraries (CMake 3.30+ modern approach)
+find_package(Boost 1.44 REQUIRED COMPONENTS filesystem program_options system serialization date_time iostreams)
# package: boost-custom
include_directories(${CMAKE_SOURCE_DIR}/lib/boost-custom)
test_dns.cpp
)
-set(Boost_USE_STATIC_LIBS OFF)
-set(Boost_USE_MULTITHREADED OFF)
-set(Boost_USE_STATIC_RUNTIME OFF)
-find_package(Boost 1.44 COMPONENTS serialization date_time REQUIRED)
-include_directories(${Boost_INCLUDE_DIRS})
-link_directories(${Boost_LIBRARY_DIRS})
-
# package: boost-net-dns
include_directories(${CMAKE_SOURCE_DIR}/lib/boost-net-dns)
test_icmppacket.cpp
)
-set(Boost_USE_STATIC_LIBS OFF)
-set(Boost_USE_MULTITHREADED OFF)
-set(Boost_USE_STATIC_RUNTIME OFF)
-find_package(Boost 1.44 COMPONENTS serialization date_time REQUIRED)
-include_directories(${Boost_INCLUDE_DIRS})
-link_directories(${Boost_LIBRARY_DIRS})
-
# linker: link the program against the libraries
target_link_libraries(
test_icmppacket
# package: find external packages
include(FindPkgConfig)
-# package: required boost libraries
-set(Boost_USE_STATIC_LIBS OFF)
-set(Boost_USE_MULTITHREADED ON)
-set(Boost_USE_STATIC_RUNTIME OFF)
-find_package(Boost 1.44 COMPONENTS unit_test_framework system program_options date_time serialization REQUIRED)
-include_directories(${Boost_INCLUDE_DIRS})
-link_directories(${Boost_LIBRARY_DIRS})
+# package: required boost libraries (CMake 3.30+ modern approach)
+find_package(Boost 1.44 REQUIRED COMPONENTS unit_test_framework system program_options date_time serialization iostreams)
# package: libi2ncommon
pkg_check_modules(I2NCOMMON REQUIRED libi2ncommon)