From 3e6018a95a3654f2c6023fa587527c04b8bf6142 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Tue, 28 Jun 2016 15:04:50 -0600 Subject: [PATCH] build: switch back to dynamic linking embree, static was a pain, slow builds, etc. --- .gitmodules | 3 --- CMakeLists.txt | 29 ----------------------------- appveyor.yml | 9 ++++++--- light/CMakeLists.txt | 42 ++++++++++++++++++++++++++++++------------ thirdparty/embree | 1 - 5 files changed, 36 insertions(+), 48 deletions(-) delete mode 100644 .gitmodules delete mode 160000 thirdparty/embree diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index ab4a9f07..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "thirdparty/embree"] - path = thirdparty/embree - url = https://github.com/embree/embree diff --git a/CMakeLists.txt b/CMakeLists.txt index 853b18d9..fc4cee13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/appveyor.yml b/appveyor.yml index abdef970..d32f395a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -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" diff --git a/light/CMakeLists.txt b/light/CMakeLists.txt index c718f4ab..db088233 100644 --- a/light/CMakeLists.txt +++ b/light/CMakeLists.txt @@ -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() + trace_embree.cc + ${LIGHT_SOURCES}) +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) -endif() + 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} $) + 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} $/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) diff --git a/thirdparty/embree b/thirdparty/embree deleted file mode 160000 index d6a3137c..00000000 --- a/thirdparty/embree +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d6a3137c97d901752e2f0fbeeb68c73cb84066f9