1- add_library (xcfun-objlib OBJECT "" )
1+ add_library (xcfun OBJECT "" )
22
3- set_target_properties (xcfun-objlib
3+ include (GenerateExportHeader)
4+ generate_export_header(xcfun
5+ BASE_NAME "XCFun"
6+ EXPORT_MACRO_NAME "XCFun_EXPORT"
7+ EXPORT_FILE_NAME "${PROJECT_BINARY_DIR} /${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME} /XCFunExport.h"
8+ DEPRECATED_MACRO_NAME "XCFun_DEPRECATED"
9+ NO_EXPORT_MACRO_NAME "XCFun_NO_EXPORT"
10+ STATIC_DEFINE "XCFun_STATIC_DEFINE"
11+ NO_DEPRECATED_MACRO_NAME "XCFun_NO_DEPRECATED"
12+ DEFINE_NO_DEPRECATED
13+ )
14+ install (
15+ FILES ${PROJECT_BINARY_DIR} /${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME} /XCFunExport.h
16+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /XCFun
17+ )
18+
19+ set_target_properties (xcfun
420 PROPERTIES
521 POSITION_INDEPENDENT_CODE 1
6- CXX_VISIBILITY_PRESET hidden
7- VISIBILITY_INLINES_HIDDEN 1
822 )
9- target_compile_options (xcfun-objlib
23+ target_compile_options (xcfun
1024 # FIXME These should be PUBLIC, but then Fortran inherits flags it doesn't
1125 # understand...
1226 PRIVATE
@@ -16,24 +30,24 @@ target_compile_options(xcfun-objlib
1630 "$<$<CONFIG:Release>:${XCFun_CXX_FLAGS_RELEASE} >"
1731 "$<$<BOOL:${ENABLE_CODE_COVERAGE} >:${XCFun_CXX_FLAGS_COVERAGE} >"
1832 )
19- target_compile_definitions (xcfun-objlib
33+ target_compile_definitions (xcfun
2034 PUBLIC
2135 XCFun_EXPORTS
2236 XC_MAX_ORDER=${XCFun_XC_MAX_ORDER}
2337 )
24- target_include_directories (xcfun-objlib
38+ target_include_directories (xcfun
2539 PRIVATE
2640 ${PROJECT_SOURCE_DIR} /api
2741 ${PROJECT_BINARY_DIR} /include
2842 ${CMAKE_CURRENT_SOURCE_DIR}
2943 )
30- target_include_directories (xcfun-objlib
44+ target_include_directories (xcfun
3145 SYSTEM
3246 PRIVATE
3347 ${PROJECT_SOURCE_DIR} /external/upstream/taylor
3448 )
3549
36- target_sources (xcfun-objlib
50+ target_sources (xcfun
3751 PRIVATE
3852 xcfun.cpp
3953 xcint.cpp
@@ -71,7 +85,7 @@ add_subdirectory(functionals)
7185
7286if (NOT STATIC_LIBRARY_ONLY)
7387 add_library (xcfun-shared SHARED
74- $<TARGET_OBJECTS:xcfun-objlib >
88+ $<TARGET_OBJECTS:xcfun>
7589 $<TARGET_OBJECTS:xcfun-c-objlib>
7690 )
7791 target_compile_definitions (xcfun-shared
@@ -82,8 +96,7 @@ if(NOT STATIC_LIBRARY_ONLY)
8296 )
8397 target_include_directories (xcfun-shared
8498 INTERFACE
85- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /api>
86- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} /include >
99+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} /${CMAKE_INSTALL_INCLUDEDIR} >
87100 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
88101 )
89102 target_link_libraries (xcfun-shared
@@ -112,7 +125,7 @@ endif()
112125
113126if (NOT SHARED_LIBRARY_ONLY)
114127 add_library (xcfun-static STATIC
115- $<TARGET_OBJECTS:xcfun-objlib >
128+ $<TARGET_OBJECTS:xcfun>
116129 $<TARGET_OBJECTS:xcfun-c-objlib>
117130 )
118131 target_compile_definitions (xcfun-static
@@ -123,8 +136,7 @@ if(NOT SHARED_LIBRARY_ONLY)
123136 )
124137 target_include_directories (xcfun-static
125138 INTERFACE
126- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /api>
127- $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} /include >
139+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} /${CMAKE_INSTALL_INCLUDEDIR} >
128140 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
129141 )
130142 target_link_libraries (xcfun-static
@@ -146,31 +158,15 @@ if(NOT SHARED_LIBRARY_ONLY)
146158 )
147159endif ()
148160
161+ # The second alias is useful with FetchContent
149162if (STATIC_LIBRARY_ONLY)
150163 add_library (XCFun ALIAS xcfun-static )
164+ add_library (XCFun::xcfun ALIAS xcfun-static )
151165else ()
152166 add_library (XCFun ALIAS xcfun-shared)
167+ add_library (XCFun::xcfun ALIAS xcfun-shared)
153168endif ()
154169
155- include (GenerateExportHeader)
156- generate_export_header(XCFun
157- BASE_NAME "XCFun"
158- EXPORT_MACRO_NAME "XCFun_EXPORT"
159- EXPORT_FILE_NAME "XCFunExport.h"
160- DEPRECATED_MACRO_NAME "XCFun_DEPRECATED"
161- NO_EXPORT_MACRO_NAME "XCFun_NO_EXPORT"
162- STATIC_DEFINE "XCFun_STATIC_DEFINE"
163- NO_DEPRECATED_MACRO_NAME "XCFun_NO_DEPRECATED"
164- DEFINE_NO_DEPRECATED)
165- file (
166- COPY ${CMAKE_CURRENT_BINARY_DIR} /XCFunExport.h
167- DESTINATION ${PROJECT_BINARY_DIR} /include
168- )
169- install (
170- FILES ${PROJECT_BINARY_DIR} /include /XCFunExport.h
171- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /XCFun
172- )
173-
174170# <<< Export Config >>>
175171include (CMakePackageConfigHelpers)
176172write_basic_package_version_file(
0 commit comments