|
1 | 1 | cmake_minimum_required (VERSION 3.6...3.9)
|
2 |
| -project(IfcPlusPlus) |
| 2 | +project(IfcPlusPlus LANGUAGES CXX) |
3 | 3 |
|
4 |
| -ADD_DEFINITIONS(-DIFCQUERY_STATIC_LIB) |
| 4 | +ADD_DEFINITIONS(-DIFCQUERY_LIB) |
5 | 5 | ADD_DEFINITIONS(-D_HAS_AUTO_PTR_ETC=1)
|
6 | 6 | ADD_DEFINITIONS(-DUNICODE)
|
7 | 7 | ADD_DEFINITIONS(-D_UNICODE)
|
8 | 8 | set(CMAKE_CXX_STANDARD 17)
|
9 |
| -set(CMAKE_CXX_STANDARD C++17) |
10 | 9 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
11 | 10 |
|
12 | 11 | if(WIN32)
|
@@ -75,9 +74,14 @@ if (MSVC)
|
75 | 74 | set_source_files_properties(src/ifcpp/IFC4X3/TypeFactory.cpp PROPERTIES COMPILE_FLAGS /bigobj)
|
76 | 75 | endif()
|
77 | 76 |
|
78 |
| -add_library(IfcPlusPlus STATIC ${IFCPP_SOURCE_FILES}) |
| 77 | +add_library(IfcPlusPlus ${IFCPP_SOURCE_FILES}) |
| 78 | + |
| 79 | +if(NOT BUILD_SHARED_LIBS) |
| 80 | + target_compile_definitions(IfcPlusPlus PUBLIC IFCQUERY_STATIC_LIB) |
| 81 | +endif() |
79 | 82 |
|
80 | 83 | TARGET_INCLUDE_DIRECTORIES(IfcPlusPlus
|
| 84 | + PUBLIC "$<INSTALL_INTERFACE:include;include/ifcpp/IFC4X3/include;include/ifcpp/external>" |
81 | 85 | PRIVATE
|
82 | 86 | ${CMAKE_CURRENT_SOURCE_DIR}/src
|
83 | 87 | ${IFCPP_SOURCE_DIR}/IfcPlusPlus/src
|
@@ -107,24 +111,32 @@ install(
|
107 | 111 | DESTINATION include
|
108 | 112 | FILES_MATCHING PATTERN "*.h"
|
109 | 113 | )
|
| 114 | + |
| 115 | +# Install cmake config |
| 116 | + |
| 117 | +set(IFCPP_CONFIG_DIR "share/IFCPP") |
| 118 | + |
110 | 119 | install(
|
111 | 120 | TARGETS IfcPlusPlus
|
112 |
| - EXPORT IfcPlusPlus |
| 121 | + EXPORT IFCPP-targets |
113 | 122 | RUNTIME DESTINATION bin
|
114 |
| - LIBRARY DESTINATION bin |
115 |
| - ARCHIVE DESTINATION bin |
| 123 | + LIBRARY DESTINATION lib |
| 124 | + ARCHIVE DESTINATION lib |
116 | 125 | )
|
117 | 126 |
|
118 |
| -set(target_output_filename IfcPlusPlus-targets.cmake) |
119 |
| -set(target_output "${CMAKE_BINARY_DIR}/cmake/${target_output_filename}") |
120 |
| - |
121 |
| -export( |
122 |
| - EXPORT IfcPlusPlus |
123 |
| - FILE ${target_output} |
124 |
| - NAMESPACE IFCPP::) |
| 127 | +install( |
| 128 | + EXPORT IFCPP-targets |
| 129 | + DESTINATION "${IFCPP_CONFIG_DIR}" |
| 130 | + NAMESPACE IFCPP:: |
| 131 | +) |
125 | 132 |
|
| 133 | +include(CMakePackageConfigHelpers) |
| 134 | +configure_package_config_file( |
| 135 | + "${CMAKE_CURRENT_SOURCE_DIR}/IFCPP-config.cmake.in" |
| 136 | + "${CMAKE_CURRENT_BINARY_DIR}/IFCPP-config.cmake" |
| 137 | + INSTALL_DESTINATION "${IFCPP_CONFIG_DIR}" |
| 138 | +) |
126 | 139 | install(
|
127 |
| - EXPORT IfcPlusPlus |
128 |
| - DESTINATION ${IFCPP_CONFIG_DIR} |
129 |
| - FILE ${target_output_filename} |
130 |
| - NAMESPACE IFCPP::) |
| 140 | + FILES "${CMAKE_CURRENT_BINARY_DIR}/IFCPP-config.cmake" |
| 141 | + DESTINATION "${IFCPP_CONFIG_DIR}" |
| 142 | +) |
0 commit comments