Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 31 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ project(boost_dll VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)

option(BOOST_DLL_USE_STD_FS "Use std::filesystem instead of Boost.Filesystem" OFF)

# Base library

add_library(boost_dll_base INTERFACE)
add_library(Boost::dll_base ALIAS boost_dll_base)
target_include_directories(boost_dll_base INTERFACE include)
target_link_libraries(boost_dll_base
INTERFACE
Expand All @@ -25,35 +28,53 @@ target_link_libraries(boost_dll_base
${CMAKE_DL_LIBS}
)

# Library with std::filesystem

add_library(boost_dll_std_fs INTERFACE)
target_link_libraries(boost_dll_std_fs
INTERFACE
boost_dll_base
)
add_library(Boost::dll_std_fs ALIAS boost_dll_std_fs)
target_include_directories(boost_dll_std_fs INTERFACE include)
target_link_libraries(boost_dll_std_fs INTERFACE Boost::dll_base)
target_compile_definitions(boost_dll_std_fs INTERFACE BOOST_DLL_USE_STD_FS)
target_compile_features(boost_dll_std_fs INTERFACE cxx_std_17)

# Library with Boost.Filesystem

add_library(boost_dll_boost_fs INTERFACE)
add_library(Boost::dll_boost_fs ALIAS boost_dll_boost_fs)
target_include_directories(boost_dll_boost_fs INTERFACE include)
target_link_libraries(boost_dll_boost_fs
INTERFACE
boost_dll_base
Boost::dll_base # Internal dependency
Boost::filesystem
)

# Detault library

add_library(boost_dll INTERFACE)
if(BOOST_DLL_USE_STD_FS)
target_link_libraries(boost_dll INTERFACE boost_dll_std_fs)
add_library(Boost::dll ALIAS boost_dll)
target_include_directories(boost_dll INTERFACE include)
if (BOOST_DLL_USE_STD_FS)
target_link_libraries(boost_dll INTERFACE Boost::dll_std_fs)
else()
target_link_libraries(boost_dll INTERFACE boost_dll_boost_fs)
target_link_libraries(boost_dll INTERFACE Boost::dll_boost_fs)
endif()

add_library(Boost::dll ALIAS boost_dll)
if (BOOST_SUPERPROJECT_VERSION AND NOT CMAKE_VERSION VERSION_LESS 3.13)
boost_install(
TARGETS
boost_dll
boost_dll_base
boost_dll_std_fs
boost_dll_boost_fs
VERSION
"${BOOST_SUPERPROJECT_VERSION}"
HEADER_DIRECTORY
include
)
endif()

if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")

add_subdirectory(test)

endif()

Loading