Skip to content

Commit 5b7cce7

Browse files
committed
build(cmake): install as single package
1 parent a5dc9ce commit 5b7cce7

15 files changed

Lines changed: 87 additions & 143 deletions

File tree

CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
cmake_minimum_required(VERSION 3.18)
22

3-
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
3+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
44

55
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
66
set(CMAKE_CUDA_ARCHITECTURES 75)
77
endif()
88

99
project(eic-opticks VERSION 0.1.0 LANGUAGES CXX CUDA)
1010

11+
set(BUILD_SHARED_LIBS ON)
12+
13+
include(GNUInstallDirs)
14+
include(CTest)
15+
1116
add_subdirectory(sysrap)
1217
add_subdirectory(CSG)
1318
add_subdirectory(qudarap)

CSG/CMakeLists.txt

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
11
set(name CSG)
2-
project(${name} VERSION 0.1.0)
3-
include(OpticksBuildOptions NO_POLICY_SCOPE)
4-
5-
include_directories(
6-
${CMAKE_CURRENT_SOURCE_DIR}
7-
)
82

93
set(SOURCES)
104
set(HEADERS)
@@ -119,16 +113,19 @@ target_compile_definitions( ${name} PUBLIC OPTICKS_CSG )
119113
target_compile_definitions( ${name} PUBLIC WITH_CONTIGUOUS )
120114
target_compile_definitions( ${name} PUBLIC WITH_S_BB )
121115

122-
target_include_directories(${name}
123-
PUBLIC
124-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
125-
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
116+
target_include_directories(${name} PUBLIC
117+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
118+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
126119
)
127120

128-
target_link_libraries(${name} Opticks::SysRap)
121+
target_link_libraries(${name} SysRap)
129122

130-
bcm_deploy(TARGETS ${name} NAMESPACE Opticks:: SKIP_HEADER_INSTALL)
123+
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${name})
131124

132-
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
125+
install(TARGETS ${name}
126+
EXPORT EicOpticksTargets
127+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
128+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
129+
)
133130

134131
add_subdirectory(tests)

CSG/tests/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ set( DEFERRED_TEST_SOURCES
6666
foreach(SRC ${TEST_SOURCES})
6767
get_filename_component(TGT ${SRC} NAME_WE)
6868
add_executable(${TGT} ${SRC})
69-
target_link_libraries(${TGT} Opticks::CSG CUDA::cudart)
69+
target_link_libraries(${TGT} CSG CUDA::cudart)
7070

7171
add_test(
7272
NAME ${name}.${TGT}
@@ -76,4 +76,4 @@ endforeach()
7676

7777
set(TGT CSGDemoTest)
7878
add_executable(${TGT} CSGDemoTest.cc DemoGeo.cc DemoGrid.cc)
79-
target_link_libraries(${TGT} Opticks::CSG CUDA::cudart)
79+
target_link_libraries(${TGT} CSG CUDA::cudart)

CSGOptiX/CMakeLists.txt

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
11
set(name CSGOptiX)
2-
project(${name} VERSION 0.1.0)
3-
include(OpticksBuildOptions)
42

53
find_package(OptiX)
64

7-
get_target_property(CSG_INCLUDE_DIRS Opticks::CSG INTERFACE_INCLUDE_DIRECTORIES)
85
set(buildenvpath ${CMAKE_CURRENT_BINARY_DIR}/buildenv.sh)
96
file(WRITE ${buildenvpath} "export OPTIX_VERSION=${OptiX_VERSION}\n")
107
message(STATUS "write to buildenvpath ${buildenvpath} ")
118

12-
13-
include_directories(
14-
${CSG_INCLUDE_DIRS}
15-
${CMAKE_CURRENT_SOURCE_DIR}
16-
)
17-
18-
199
set(SOURCES)
2010
set(CU_SOURCES)
2111

@@ -58,6 +48,7 @@ foreach(cu_src IN LISTS CU_SOURCES)
5848
add_library(${cu_src} OBJECT ${cu_src})
5949
set_target_properties(${cu_src} PROPERTIES CUDA_PTX_COMPILATION ON)
6050
target_include_directories(${cu_src} PUBLIC
51+
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/CSG>
6152
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/sysrap>
6253
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/qudarap>)
6354
target_compile_definitions(${cu_src} PUBLIC WITH_PRD WITH_SIMULATE WITH_SIMTRACE WITH_RENDER
@@ -94,23 +85,19 @@ WITH_THRUST compile definition
9485
target_compile_definitions( ${name} PRIVATE WITH_THRUST )
9586

9687
target_include_directories( ${name} PUBLIC
97-
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/sysrap/inc>
98-
$<INSTALL_INTERFACE:include>
99-
$<INSTALL_INTERFACE:include/CSGOptiX>
88+
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/CSGOptiX>
89+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
10090
)
10191

102-
target_link_libraries(${name}
103-
PUBLIC
104-
OptiX::OptiX
105-
Opticks::CSG
106-
Opticks::QUDARap
107-
)
108-
109-
# Opticks::OpticksCore
92+
target_link_libraries(${name} PUBLIC OptiX::OptiX CSG QUDARap SysRap)
11093

11194
install(FILES $<TARGET_OBJECTS:CSGOptiX7.cu> DESTINATION ptx RENAME CSGOptiX_generated_CSGOptiX7.cu.ptx)
112-
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
95+
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${name})
11396

114-
add_subdirectory(tests)
97+
install(TARGETS ${name}
98+
EXPORT EicOpticksTargets
99+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
100+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
101+
)
115102

116-
bcm_deploy(TARGETS ${name} NAMESPACE Opticks:: SKIP_HEADER_INSTALL)
103+
add_subdirectory(tests)

g4cx/CMakeLists.txt

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
set(name G4CX)
2-
set(desc "Top Level")
3-
project(${name} VERSION 0.1.0)
4-
include(OpticksBuildOptions NO_POLICY_SCOPE)
52

63
set(SOURCES
74
G4CX_LOG.cc
@@ -14,23 +11,23 @@ set(HEADERS
1411
G4CXOpticks.hh
1512
)
1613

14+
add_library(${name} SHARED ${SOURCES} ${HEADERS})
1715

18-
add_library( ${name} SHARED ${SOURCES} ${HEADERS} )
19-
20-
target_link_libraries( ${name} PUBLIC
21-
Opticks::U4
22-
Opticks::CSGOptiX
23-
)
16+
target_link_libraries(${name} PUBLIC U4 CSGOptiX)
2417

2518
target_include_directories( ${name} PUBLIC
2619
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
2720
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/CSGOptiX>
2821
)
2922

3023
target_compile_definitions( ${name} PUBLIC OPTICKS_G4CX )
31-
target_compile_definitions( ${name} PUBLIC G4USE_STD11 )
3224

33-
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
34-
bcm_deploy(TARGETS ${name} NAMESPACE Opticks:: SKIP_HEADER_INSTALL)
25+
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${name})
26+
27+
install(TARGETS ${name}
28+
EXPORT EicOpticksTargets
29+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
30+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
31+
)
3532

3633
add_subdirectory(tests)

g4cx/tests/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
set(name G4CXTest)
2-
project(${name} VERSION 0.1.0)
3-
include(OpticksBuildOptions)
42

53
find_package(CUDAToolkit REQUIRED)
64

gdxml/CMakeLists.txt

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
set(name GDXML)
22
set(desc "XML Level xercesc fixing GDML")
3-
project(${name} VERSION 0.1.0)
4-
include(OpticksBuildOptions NO_POLICY_SCOPE)
53

64
find_package(XercesC REQUIRED)
75

@@ -24,7 +22,7 @@ set(HEADERS
2422
add_library( ${name} SHARED ${SOURCES} ${HEADERS} )
2523

2624
target_link_libraries( ${name} PUBLIC
27-
Opticks::SysRap
25+
SysRap
2826
XercesC::XercesC
2927
)
3028

@@ -35,12 +33,13 @@ target_include_directories( ${name} PUBLIC
3533
)
3634

3735
target_compile_definitions( ${name} PUBLIC OPTICKS_GDXML )
38-
target_compile_definitions( ${name} PUBLIC G4USE_STD11 )
39-
40-
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
41-
bcm_deploy(TARGETS ${name} NAMESPACE Opticks:: SKIP_HEADER_INSTALL)
42-
43-
add_subdirectory(tests)
4436

37+
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${name})
4538

39+
install(TARGETS ${name}
40+
EXPORT EicOpticksTargets
41+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
42+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
43+
)
4644

45+
add_subdirectory(tests)

gdxml/tests/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
set(name GDXMLTest)
2-
project(${name} VERSION 0.1.0)
3-
include(OpticksBuildOptions)
42

53
set(TEST_SOURCES
64
GDXMLTest.cc

qudarap/CMakeLists.txt

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
11
set(name QUDARap)
2-
project(${name} VERSION 0.1.0)
3-
include(OpticksBuildOptions NO_POLICY_SCOPE)
4-
5-
6-
set(FLAGS_VERBOSE ON)
7-
8-
set(LIBS )
9-
10-
set(LIBS ${LIBS} Opticks::SysRap)
11-
122

133
set(Custom4_VERBOSE ON)
144
find_package(Custom4 CONFIG)
155

16-
message(STATUS "${name} Custom4_FOUND:${Custom4_FOUND} " )
176
set(DEV_SOURCES
187
QSim_cerenkov_dev.cu
198
)
@@ -144,24 +133,17 @@ SET(HEADERS
144133
QBuf.hh
145134
)
146135

147-
148-
149-
if(UNIX AND NOT APPLE)
150-
set(LIBS ${LIBS} ssl )
151-
endif()
152-
153136
add_library( ${name} ${SOURCES} )
154137

155138
get_target_property(ILL ${name} INTERFACE_LINK_LIBRARIES)
156139
message(STATUS "${name} INTERFACE_LINK_LIBRARIES:${ILL} " )
157140

158-
159141
if(Custom4_FOUND)
160142
target_compile_definitions( ${name} PUBLIC WITH_CUSTOM4 )
161143
target_include_directories( ${name} PUBLIC ${Custom4_INCLUDE_DIR})
162144
endif()
163145

164-
target_link_libraries( ${name} ${LIBS})
146+
target_link_libraries( ${name} SysRap ssl)
165147
target_compile_definitions( ${name} PUBLIC OPTICKS_QUDARAP DEBUG_TAG )
166148

167149

@@ -191,14 +173,18 @@ WITH_THRUST compile definition
191173

192174
target_compile_definitions( ${name} PRIVATE WITH_THRUST )
193175

194-
target_include_directories( ${name}
195-
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
196-
$<INSTALL_INTERFACE:include>
197-
$<INSTALL_INTERFACE:include/QUDARap>
176+
target_include_directories( ${name} PUBLIC
177+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
178+
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/sysrap/inc>
179+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
198180
)
199181

200-
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
182+
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${name})
201183

202-
bcm_deploy(TARGETS ${name} NAMESPACE Opticks:: SKIP_HEADER_INSTALL)
184+
install(TARGETS ${name}
185+
EXPORT EicOpticksTargets
186+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
187+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
188+
)
203189

204190
add_subdirectory(tests)

qudarap/tests/CMakeLists.txt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
set(name QUDARapTest)
2-
project(${name} VERSION 0.1.0)
3-
include(OpticksBuildOptions)
42

53
find_package(CUDAToolkit REQUIRED)
64

@@ -48,7 +46,6 @@ foreach(SRC ${TEST_SOURCES})
4846
get_filename_component(TGT ${SRC} NAME_WE)
4947
add_executable(${TGT} ${SRC})
5048
target_link_libraries(${TGT} QUDARap CUDA::cudart)
51-
target_include_directories(${TGT} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/sysrap/inc>)
5249

5350
add_test(
5451
NAME ${name}.${TGT}
@@ -64,21 +61,6 @@ foreach(SRC ${KNOWN_FAIL_TEST_SOURCES})
6461
endforeach()
6562

6663

67-
68-
69-
set(TEST_SOURCES_CU
70-
)
71-
72-
foreach(CU ${TEST_SOURCES_CU})
73-
get_filename_component(TGT ${CU} NAME_WE)
74-
cuda_add_executable(${TGT} ${CU} OPTIONS)
75-
add_test(${name}.${TGT} ${TGT})
76-
77-
target_link_libraries(${TGT} QUDARap )
78-
endforeach()
79-
80-
81-
8264
## HMM: switch to Custom4 (not getting that indirectly via PMTSim)
8365
find_package(PMTSim_standalone CONFIG)
8466

0 commit comments

Comments
 (0)