Skip to content

Conversation

Flamefire
Copy link
Contributor

@Flamefire Flamefire commented Oct 5, 2024

For header-only libraries this adds a target to IDEs containing the headers (CMake 3.19+) For compiled libraries it includes the headers in the existing target

E.g. for optional it outputs:

# Generated by `boostdep --cmake optional`
# Copyright 2020, 2021 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt

cmake_minimum_required(VERSION 3.8...3.20)

project(boost_optional VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)

add_library(boost_optional INTERFACE)
add_library(Boost::optional ALIAS boost_optional)

target_include_directories(boost_optional INTERFACE include)
if(NOT CMAKE_VERSION VERSION_LESS "3.19")
  file(GLOB_RECURSE headers include/*.hpp)
  target_sources(boost_optional PRIVATE ${headers})
endif()

target_link_libraries(boost_optional
  INTERFACE
    Boost::assert
    Boost::config
    Boost::core
    Boost::move
    Boost::static_assert
    Boost::throw_exception
    Boost::type_traits
)

target_compile_features(boost_optional INTERFACE cxx_std_11)

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

  add_subdirectory(test)

endif()

For header-only libraries this adds a target to IDEs containing the headers (CMake 3.19+)
For compiled libraries it includes the headers in the existing target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant