build: switch back to dynamic linking embree, static was a pain, slow builds, etc.

This commit is contained in:
Eric Wasylishen 2016-06-28 15:04:50 -06:00
parent 913d6f068c
commit 3e6018a95a
5 changed files with 36 additions and 48 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "thirdparty/embree"]
path = thirdparty/embree
url = https://github.com/embree/embree

View File

@ -61,35 +61,6 @@ 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 SSE3 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 "")
if(CMAKE_GENERATOR STREQUAL "Xcode")
MESSAGE(WARNING "Working around https://gitlab.kitware.com/cmake/cmake/issues/16101 will break CPack. Use the makefile generator for packaging.")
add_subdirectory(thirdparty/embree)
else()
add_subdirectory(thirdparty/embree EXCLUDE_FROM_ALL)
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse3")
ENDIF()
add_subdirectory(bspinfo)
add_subdirectory(bsputil)
add_subdirectory(light)

View File

@ -4,7 +4,10 @@ platform:
version: 1.0.{build}
install:
- git submodule update --init --recursive
- ps: Invoke-WebRequest 'https://github.com/embree/embree/releases/download/v2.10.0/embree-2.10.0.x64.windows.zip' -OutFile 'embree64.zip'
- ps: 7z x embree64.zip -oc:\
- ps: Invoke-WebRequest 'https://github.com/embree/embree/releases/download/v2.10.0/embree-2.10.0.win32.windows.zip' -OutFile 'embree.zip'
- ps: 7z x embree.zip -oc:\
build_script:
- ps: >-
$env:Path += ";C:\cygwin64\bin"
@ -14,9 +17,9 @@ build_script:
cd cmakebuild
If ($env:Platform -Match "x64") {
cmake .. -T v140_xp -DCMAKE_GENERATOR_PLATFORM=x64
cmake .. -T v140_xp -Dembree_DIR="c:/embree-2.10.0.x64.windows/lib/cmake/embree-2.10.0" -DCMAKE_GENERATOR_PLATFORM=x64
} Else {
cmake .. -T v140_xp
cmake .. -T v140_xp -Dembree_DIR="c:/embree-2.10.0.win32.windows/lib/cmake/embree-2.10.0"
}
msbuild PACKAGE.vcxproj /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"

View File

@ -21,12 +21,17 @@ set(LIGHT_SOURCES
${COMMON_INCLUDES}
${LIGHT_INCLUDES})
if (TYRUTILS_USE_EMBREE)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/thirdparty/embree/include)
FIND_PACKAGE(embree 2.0)
if (embree_FOUND)
MESSAGE(STATUS "Embree found")
INCLUDE_DIRECTORIES(${EMBREE_INCLUDE_DIRS})
set(LIGHT_SOURCES
trace_embree.cc
${LIGHT_SOURCES})
endif()
endif(embree_FOUND)
add_executable(light ${LIGHT_SOURCES})
target_link_libraries (light ${CMAKE_THREAD_LIBS_INIT})
@ -34,14 +39,27 @@ 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 (TYRUTILS_USE_EMBREE)
add_dependencies (light embree)
target_link_libraries (light PRIVATE embree)
add_definitions(-DEMBREE_STATIC_LIB)
if (embree_FOUND)
target_link_libraries (light ${EMBREE_LIBRARY})
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)
endif()
endif(embree_FOUND)
install(TARGETS light RUNTIME DESTINATION bin)
install(FILES ${CMAKE_SOURCE_DIR}/thirdparty/embree/LICENSE.txt DESTINATION bin RENAME LICENSE-embree.txt)
install(FILES ${CMAKE_SOURCE_DIR}/gpl_v3.txt 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)
install(FILES ${CMAKE_SOURCE_DIR}/gpl_v3.txt DESTINATION bin)

1
thirdparty/embree vendored

@ -1 +0,0 @@
Subproject commit d6a3137c97d901752e2f0fbeeb68c73cb84066f9