1- add_library (pcms_capi client.cpp kokkos.cpp)
2- add_library (pcms::capi ALIAS pcms_capi)
1+ add_library (pcms_capi_core client.cpp kokkos.cpp)
2+ add_library (pcms::capi::core ALIAS pcms_capi_core)
3+
34target_link_libraries (
4- pcms_capi
5+ pcms_capi_core
56 PUBLIC MPI::MPI_C
67 PRIVATE pcms::core)
78
89target_include_directories (
9- pcms_capi
10+ pcms_capi_core
1011 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /../..>" # this makes our
1112 # include path
1213 # pcms/capi
1314 "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} /pcms/capi>" )
1415
15- set (CAPI_HEADERS ${CMAKE_CURRENT_SOURCE_DIR} /client.h
16+ set (CAPI_CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR} /client.h
1617 ${CMAKE_CURRENT_SOURCE_DIR} /kokkos.h)
1718set_target_properties (
18- pcms_capi PROPERTIES PUBLIC_HEADER "${CAPI_HEADERS} " OUTPUT_NAME pcmscapi
19- EXPORT_NAME capi)
19+ pcms_capi_core PROPERTIES PUBLIC_HEADER "${CAPI_CORE_HEADERS} " OUTPUT_NAME pcmscapicore
20+ EXPORT_NAME capi::core)
21+
22+ add_library (pcms_capi_interpolator mesh.cpp interpolator.cpp kokkos.cpp)
23+ add_library (pcms::capi::interpolator ALIAS pcms_capi_interpolator)
24+ target_link_libraries (pcms_capi_interpolator PUBLIC MPI::MPI_C PRIVATE pcms::interpolator)
25+ target_include_directories (pcms_capi_interpolator
26+ PUBLIC
27+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /../..>" # this makes the module path cpms/capi
28+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} /pcms/capi>" )
29+ set (CAPI_INTERPOLATOR_HEADERS ${CMAKE_CURRENT_SOURCE_DIR} /interpolator.h
30+ ${CMAKE_CURRENT_SOURCE_DIR} /mesh.h)
31+ set_target_properties (pcms_capi_interpolator
32+ PROPERTIES PUBLIC_HEADERS "${CAPI_INTERPOLATOR_HEADERS} "
33+ OUTPUT_NAME pcmscapiinterpolator
34+ EXPORT_NAME capi::interpolator)
35+
36+ # high level interface target
37+ add_library (pcms_capi INTERFACE )
38+ add_library (pcms::capi ALIAS pcms_capi)
39+ set_target_properties (pcms_capi PROPERTIES EXPORT_NAME capi)
40+ # link capi libraries to a high level interface library
41+ target_link_libraries (pcms_capi INTERFACE pcms::capi::core)
42+ target_link_libraries (pcms_capi INTERFACE pcms::capi::interpolator)
2043install (
2144 TARGETS pcms_capi
2245 EXPORT pcms_capi-targets
@@ -25,8 +48,37 @@ install(
2548 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
2649 INCLUDES
2750 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
28- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /pcms/capi/ )
51+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /pcms)
2952install (
3053 EXPORT pcms_capi-targets
3154 NAMESPACE pcms::
3255 DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/pcms)
56+
57+ # library targets
58+ install (
59+ TARGETS pcms_capi_core
60+ EXPORT pcms_capi_core-targets
61+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
62+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
63+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
64+ INCLUDES
65+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
66+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /pcms/capi/)
67+ install (
68+ EXPORT pcms_capi_core-targets
69+ NAMESPACE pcms::
70+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/pcms)
71+
72+ install (
73+ TARGETS pcms_capi_interpolator
74+ EXPORT pcms_capi_interpolator-targets
75+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
76+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
77+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
78+ INCLUDES
79+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
80+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /pcms/capi/)
81+ install (
82+ EXPORT pcms_capi_interpolator-targets
83+ NAMESPACE pcms::
84+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/pcms)
0 commit comments