Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add headers to generated CMake targets #22

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

Flamefire
Copy link

@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