Commit 8bb4ebd8 by Maarten L. Hekkelman

update cmake rules

parent 6a67208d
...@@ -116,7 +116,7 @@ else() ...@@ -116,7 +116,7 @@ else()
endif() endif()
# generate version.h # generate version.h
include_directories(${CMAKE_BINARY_DIR}) include_directories(${CMAKE_BINARY_DIR} PRIVATE)
string(TIMESTAMP BUILD_DATE_TIME "%Y-%m-%dT%H:%M:%SZ" UTC) string(TIMESTAMP BUILD_DATE_TIME "%Y-%m-%dT%H:%M:%SZ" UTC)
configure_file("${CMAKE_SOURCE_DIR}/src/revision.hpp.in" "${CMAKE_BINARY_DIR}/revision.hpp" @ONLY) configure_file("${CMAKE_SOURCE_DIR}/src/revision.hpp.in" "${CMAKE_BINARY_DIR}/revision.hpp" @ONLY)
...@@ -158,16 +158,12 @@ set(project_headers ...@@ -158,16 +158,12 @@ set(project_headers
${PROJECT_SOURCE_DIR}/include/cif++/TlsParser.hpp ${PROJECT_SOURCE_DIR}/include/cif++/TlsParser.hpp
) )
include_directories(
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
)
add_library(cifpp ${project_sources} ${project_headers}) add_library(cifpp ${project_sources} ${project_headers})
set_target_properties(cifpp PROPERTIES
SOVERSION ${PROJECT_VERSION} target_include_directories(cifpp
INTERFACE_cifpp_MAJOR_VERSION cifpp_MAJOR_VERSION PUBLIC
COMPATIBLE_INTERFACE_STRING cifpp_MAJOR_VERSION "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
) )
if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
...@@ -214,8 +210,6 @@ set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} ) ...@@ -214,8 +210,6 @@ set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
set(LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} ) set(LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} )
set(SHARE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/libcifpp) set(SHARE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/libcifpp)
set(ConfigPackageLocation lib/cmake/cifpp)
# Fix cache dir # Fix cache dir
add_compile_definitions( add_compile_definitions(
# CACHE_DIR="${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL_DIR}" # CACHE_DIR="${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL_DIR}"
...@@ -234,13 +228,13 @@ install(TARGETS cifpp ...@@ -234,13 +228,13 @@ install(TARGETS cifpp
install( install(
DIRECTORY include/cif++ DIRECTORY include/cif++
DESTINATION include DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT Devel COMPONENT Devel
) )
install( install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/cifpp_export.h" FILES "${CMAKE_CURRENT_BINARY_DIR}/cifpp_export.h"
DESTINATION include/cif++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cif++
COMPONENT Devel COMPONENT Devel
) )
...@@ -251,10 +245,28 @@ install(FILES ...@@ -251,10 +245,28 @@ install(FILES
DESTINATION ${SHARE_INSTALL_DIR} DESTINATION ${SHARE_INSTALL_DIR}
) )
configure_package_config_file(cmake/cifppConfig.cmake.in configure_package_config_file(Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/cifppConfig.cmake
INSTALL_DESTINATION ${ConfigPackageLocation} INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cifpp
PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_DIR SHARE_INSTALL_DIR) PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_DIR SHARE_INSTALL_DIR
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cifpp
COMPONENT Devel
)
set(cifpp_MAJOR_VERSION 1)
set_target_properties(cifpp PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1
INTERFACE_cifpp_MAJOR_VERSION 1)
set_property(TARGET cifpp APPEND PROPERTY
COMPATIBLE_INTERFACE_STRING cifpp_MAJOR_VERSION
)
write_basic_package_version_file( write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfigVersion.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfigVersion.cmake"
...@@ -263,23 +275,8 @@ write_basic_package_version_file( ...@@ -263,23 +275,8 @@ write_basic_package_version_file(
) )
export(EXPORT cifppTargets export(EXPORT cifppTargets
FILE "${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppTargets.cmake" FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/cifppTargets.cmake"
NAMESPACE cifpp:: NAMESPACE cifpp::
)
install(EXPORT cifppTargets
FILE cifppTargets.cmake
NAMESPACE cifpp::
DESTINATION ${ConfigPackageLocation}
COMPONENT Devel
)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfigVersion.cmake"
DESTINATION ${ConfigPackageLocation}
COMPONENT Devel
) )
# Unit tests # Unit tests
...@@ -339,3 +336,6 @@ if(CIFPP_BUILD_TESTS) ...@@ -339,3 +336,6 @@ if(CIFPP_BUILD_TESTS)
endforeach() endforeach()
endif() endif()
message("Still to do: libcifpp.pc, package, tools, create symop_Data")
\ No newline at end of file
# set(cifpp_VERSION @VERSION@)
@PACKAGE_INIT@ @PACKAGE_INIT@
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/cifppTargets.cmake") INCLUDE("${CMAKE_CURRENT_LIST_DIR}/cifppTargets.cmake")
......
#include <algorithm>
template<typename COMP>
class foo
{
public:
foo(int a, COMP&& b)
: m_a(a), m_b(std::move(b)) {}
int m_a;
COMP m_b;
};
void bar(const int& b)
{
int c = 1;
auto f = new foo(c, [tag = c, b](const int& x)
{ x < b; });
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment