Skip to content

Commit

Permalink
Add config files to CMake
Browse files Browse the repository at this point in the history
  • Loading branch information
joboccara committed Aug 26, 2019
1 parent f19f4a3 commit 305652d
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 6 deletions.
18 changes: 17 additions & 1 deletion CMakeLists.txt
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.12)

project(pipes
VERSION 0.0.1
Expand All @@ -8,6 +8,7 @@ project(pipes
include(GNUInstallDirs)

add_library(${PROJECT_NAME} INTERFACE)
add_library(joboccara::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

target_include_directories(${PROJECT_NAME}
INTERFACE
Expand All @@ -22,11 +23,26 @@ install(TARGETS ${PROJECT_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

include(CMakePackageConfigHelpers)

write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)

configure_package_config_file("${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION
${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)

install(EXPORT ${PROJECT_NAME}_Targets
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)

install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)

install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME} DESTINATION include)

include(CTest)
Expand Down
4 changes: 4 additions & 0 deletions cmake/pipesConfig.cmake.in
@@ -0,0 +1,4 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
check_required_components("@PROJECT_NAME@")
20 changes: 15 additions & 5 deletions tests/CMakeLists.txt
@@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.12)

project(pipes_test)

add_executable(${PROJECT_NAME}
add_executable(pipes_test
main.cpp
custom.cpp
dev_null.cpp
Expand All @@ -21,4 +19,16 @@ add_executable(${PROJECT_NAME}
unzip.cpp
integration_tests.cpp)

target_link_libraries(${PROJECT_NAME} PRIVATE joboccara::pipes)
target_include_directories(pipes_test PRIVATE
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>)

target_compile_features(pipes_test PRIVATE cxx_std_14)

target_compile_options(pipes_test
PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/std:c++17>
$<$<CXX_COMPILER_ID:MSVC>:/W4>
$<$<CXX_COMPILER_ID:MSVC>:/WX>
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:-Wall>
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:-Werror>
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:-pedantic>)

0 comments on commit 305652d

Please sign in to comment.