Warning, /eic-opticks/CSGOptiX/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 set(name CSGOptiX)
0002
0003 find_package(OptiX)
0004
0005 set(buildenvpath ${CMAKE_CURRENT_BINARY_DIR}/buildenv.sh)
0006 file(WRITE ${buildenvpath} "export OPTIX_VERSION=${OptiX_VERSION}\n")
0007 message(STATUS "write to buildenvpath ${buildenvpath} ")
0008
0009 set(SOURCES)
0010 set(OPTIX_SOURCES)
0011
0012
0013 list(APPEND SOURCES
0014 Params.cc
0015 CSGOptiX.cc
0016 Frame.cc
0017 CSGOPTIX_LOG.cc
0018
0019 Ctx.cc
0020 Properties.cc
0021 GAS.cc
0022 GAS_Builder.cc
0023 PIP.cc
0024 IAS.cc
0025 IAS_Builder.cc
0026 SBT.cc
0027 )
0028
0029 list(APPEND HEADERS
0030 CSGOptiX.h
0031 CSGOptiXService.h
0032 CSGOPTIX_API_EXPORT.hh
0033 CSGOPTIX_LOG.hh
0034 )
0035
0036 list(APPEND OPTIX_SOURCES
0037 CSGOptiX7.cu
0038 Check.cu
0039 )
0040
0041
0042 message(STATUS "OPTIX_SOURCES : ${OPTIX_SOURCES} ")
0043
0044 set(_generated_PTX_files "")
0045
0046 foreach(cu_src IN LISTS OPTIX_SOURCES)
0047 message(STATUS "Processing ${cu_src}")
0048 add_library(${cu_src} OBJECT ${cu_src})
0049 set_target_properties(${cu_src} PROPERTIES CUDA_PTX_COMPILATION ON)
0050 target_include_directories(${cu_src} PUBLIC
0051 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/CSG>
0052 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/sysrap>
0053 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/qudarap>)
0054 target_compile_definitions(${cu_src} PUBLIC WITH_PRD WITH_SIMULATE WITH_SIMTRACE WITH_RENDER
0055 OPTICKS_CSGOPTIX WITH_THRUST OPTICKS_CSG WITH_CONTIGUOUS WITH_S_BB CONFIG_Debug OPTICKS_SYSRAP WITH_CHILD
0056 PLOG_LOCAL RNG_PHILOX DEBUG_TAG DEBUG_PIDX DEBUG_PIDXYZ WITH_STTF WITH_SLOG OPTICKS_OKCONF OPTICKS_QUDARAP NVCC)
0057 target_link_libraries(${cu_src} PUBLIC OptiX::OptiX)
0058
0059 list(APPEND _generated_PTX_files "${cu_src}.ptx")
0060 endforeach()
0061
0062 message(STATUS "_generated_PTX_files ${_generated_PTX_files}")
0063
0064 add_library( ${name} SHARED ${SOURCES} ${HEADERS} )
0065
0066 target_compile_definitions( ${name} PRIVATE WITH_PRD ) # using Pointer trick means can reduce attrib and payload to 2
0067 target_compile_definitions( ${name} PUBLIC WITH_SIMULATE )
0068 target_compile_definitions( ${name} PUBLIC WITH_SIMTRACE )
0069 target_compile_definitions( ${name} PUBLIC WITH_RENDER )
0070 target_compile_definitions( ${name} PUBLIC OPTICKS_CSGOPTIX )
0071
0072 #[=[
0073
0074 WITH_THRUST compile definition
0075 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0076
0077 * WITH_THRUST is needed for Custom4 on GPU complex math functions used by qpmt.h
0078
0079 * However Custom4 also used on CPU without WITH_THRUST (eg by junosw), so
0080 the WITH_THRUST definition must be PRIVATE to avoid interference with other
0081 Custom4 usage
0082
0083 #]=]
0084
0085 target_compile_definitions( ${name} PRIVATE WITH_THRUST )
0086
0087 target_include_directories( ${name} PUBLIC
0088 $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/CSGOptiX>
0089 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
0090 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}>
0091 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/CSGOptiX>
0092 )
0093
0094 target_link_libraries(${name} PUBLIC OptiX::OptiX CSG QUDARap SysRap gphox)
0095
0096 install(FILES $<TARGET_OBJECTS:CSGOptiX7.cu> DESTINATION ${CMAKE_INSTALL_LIBDIR})
0097 install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${name})
0098
0099 install(TARGETS ${name}
0100 EXPORT ${PROJECT_NAME}Targets
0101 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
0102 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
0103 )