build local copy of embree and static link it

This commit is contained in:
Eric Wasylishen 2016-06-18 14:14:46 -06:00
parent 63ea82de3d
commit d9cf97f582
2 changed files with 30 additions and 28 deletions

View File

@ -61,6 +61,27 @@ endif (MSVC)
#minimum version that supports unordered_map
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9)
OPTION(TYRUTILS_USE_EMBREE "Use embree raytracing backend" ON)
IF (TYRUTILS_USE_EMBREE)
MESSAGE(STATUS "Using embree")
set(EMBREE_ISPC_SUPPORT NO CACHE BOOL "")
set(EMBREE_STATIC_LIB YES CACHE BOOL "")
set(EMBREE_TUTORIALS NO CACHE BOOL "")
set(EMBREE_TASKING_SYSTEM INTERNAL CACHE STRING "")
set(EMBREE_MAX_ISA SSE2 CACHE STRING "")
set(EMBREE_GEOMETRY_TRIANGLES YES CACHE BOOL "")
set(EMBREE_GEOMETRY_QUADS NO CACHE BOOL "")
set(EMBREE_GEOMETRY_LINES NO CACHE BOOL "")
set(EMBREE_GEOMETRY_HAIR NO CACHE BOOL "")
set(EMBREE_GEOMETRY_SUBDIV NO CACHE BOOL "")
set(EMBREE_GEOMETRY_USER NO CACHE BOOL "")
set(EMBREE_RAY_PACKETS NO CACHE BOOL "")
add_subdirectory(thirdparty/embree EXCLUDE_FROM_ALL)
ENDIF()
add_subdirectory(bspinfo)
add_subdirectory(bsputil)
add_subdirectory(light)

View File

@ -21,17 +21,12 @@ set(LIGHT_SOURCES
${COMMON_INCLUDES}
${LIGHT_INCLUDES})
FIND_PACKAGE(embree 2.0)
if (embree_FOUND)
MESSAGE(STATUS "Embree found")
INCLUDE_DIRECTORIES(${EMBREE_INCLUDE_DIRS})
if (TYRUTILS_USE_EMBREE)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/thirdparty/embree/include)
set(LIGHT_SOURCES
trace_embree.cc
${LIGHT_SOURCES})
endif(embree_FOUND)
endif()
add_executable(light ${LIGHT_SOURCES})
target_link_libraries (light ${CMAKE_THREAD_LIBS_INIT})
@ -39,25 +34,11 @@ set_property(TARGET light PROPERTY CXX_STANDARD 11)
set_property(TARGET light PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET light PROPERTY C_STANDARD 99)
if (embree_FOUND)
target_link_libraries (light ${EMBREE_LIBRARY})
if (TYRUTILS_USE_EMBREE)
target_link_libraries (light PRIVATE embree)
add_definitions(-DHAVE_EMBREE)
if(WIN32)
file(GLOB EMBREE_DLLS "${embree_DIR}/../../*.dll")
foreach(EMBREE_DLL ${EMBREE_DLLS})
add_custom_command(TARGET light POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${EMBREE_DLL} $<TARGET_FILE_DIR:light>)
endforeach(EMBREE_DLL)
set(EMBREE_LICENSE "${embree_DIR}/../../../doc/LICENSE.txt")
add_custom_command(TARGET light POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${EMBREE_LICENSE} $<TARGET_FILE_DIR:light>/LICENSE-embree.txt)
add_definitions(-DENABLE_STATIC_LIB)
endif()
endif(embree_FOUND)
install(TARGETS light RUNTIME DESTINATION bin)
if (embree_FOUND)
if(WIN32)
install(FILES ${EMBREE_DLLS} DESTINATION bin)
install(FILES ${EMBREE_LICENSE} DESTINATION bin RENAME LICENSE-embree.txt)
endif()
endif(embree_FOUND)