Back to home page

EIC code displayed by LXR

 
 

    


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 )