| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- ## ======================================================================== ##
- ## Copyright 2009-2017 Intel Corporation ##
- ## ##
- ## Licensed under the Apache License, Version 2.0 (the "License"); ##
- ## you may not use this file except in compliance with the License. ##
- ## You may obtain a copy of the License at ##
- ## ##
- ## http://www.apache.org/licenses/LICENSE-2.0 ##
- ## ##
- ## Unless required by applicable law or agreed to in writing, software ##
- ## distributed under the License is distributed on an "AS IS" BASIS, ##
- ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ##
- ## See the License for the specific language governing permissions and ##
- ## limitations under the License. ##
- ## ======================================================================== ##
- INCLUDE(GNUInstallDirs)
- if (NOT DEFINED EMBREE_ZIP_MODE)
- set(EMBREE_ZIP_MODE OFF)
- endif()
- IF (NOT EMBREE_ZIP_MODE AND NOT WIN32 AND NOT APPLE)
- SET(CMAKE_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR}/embree${EMBREE_VERSION_MAJOR})
- SET(CMAKE_INSTALL_FULL_BINDIR ${CMAKE_INSTALL_FULL_BINDIR}/embree${EMBREE_VERSION_MAJOR})
- ENDIF()
- # use full absolute path as install name
- IF (NOT EMBREE_ZIP_MODE)
- SET(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_FULL_LIBDIR})
- ELSE()
- IF(APPLE)
- SET(CMAKE_INSTALL_RPATH "@loader_path/../lib")
- ELSE()
- SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
- ENDIF()
- ENDIF()
- ##############################################################
- # Install Headers
- ##############################################################
- INSTALL(DIRECTORY include/embree2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT devel)
- CONFIGURE_FILE(include/embree2/rtcore.h rtcore.h @ONLY)
- CONFIGURE_FILE(include/embree2/rtcore.isph rtcore.isph @ONLY)
- INSTALL(FILES ${PROJECT_BINARY_DIR}/rtcore.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/embree2 COMPONENT devel)
- INSTALL(FILES ${PROJECT_BINARY_DIR}/rtcore.isph DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/embree2 COMPONENT devel)
- ##############################################################
- # Install Models
- ##############################################################
- INSTALL(DIRECTORY tutorials/models DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
- ##############################################################
- # Install Documentation
- ##############################################################
- INSTALL(FILES ${PROJECT_SOURCE_DIR}/LICENSE.txt DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT lib)
- INSTALL(FILES ${PROJECT_SOURCE_DIR}/CHANGELOG.md DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT lib)
- INSTALL(FILES ${PROJECT_SOURCE_DIR}/README.md DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT lib)
- INSTALL(FILES ${PROJECT_SOURCE_DIR}/readme.pdf DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT lib)
- SET(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "${CMAKE_INSTALL_DOCDIR}/LICENSE.txt" "LICENSE")
- SET(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "${CMAKE_INSTALL_DOCDIR}/CHANGELOG.txt" "CHANGELOG")
- SET(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "${CMAKE_INSTALL_DOCDIR}/README.md" "README.md")
- SET(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "${CMAKE_INSTALL_DOCDIR}/readme.pdf" "readme.pdf")
- ##############################################################
- # Install scripts to set embree paths
- ##############################################################
- IF (EMBREE_ZIP_MODE)
- IF (WIN32)
- ELSEIF(APPLE)
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/scripts/install_macosx/embree-vars.sh embree-vars.sh @ONLY)
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/scripts/install_macosx/embree-vars.csh embree-vars.csh @ONLY)
- INSTALL(FILES ${PROJECT_BINARY_DIR}/embree-vars.sh DESTINATION "." COMPONENT lib)
- INSTALL(FILES ${PROJECT_BINARY_DIR}/embree-vars.csh DESTINATION "." COMPONENT lib)
- ELSE()
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/scripts/install_linux/embree-vars.sh embree-vars.sh @ONLY)
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/scripts/install_linux/embree-vars.csh embree-vars.csh @ONLY)
- INSTALL(FILES ${PROJECT_BINARY_DIR}/embree-vars.sh DESTINATION "." COMPONENT lib)
- INSTALL(FILES ${PROJECT_BINARY_DIR}/embree-vars.csh DESTINATION "." COMPONENT lib)
- ENDIF()
- ENDIF()
- ##############################################################
- # Install Embree CMake Configuration
- ##############################################################
- IF (NOT EMBREE_ZIP_MODE)
- SET(EMBREE_CONFIG_VERSION ${EMBREE_VERSION})
- ELSE()
- SET(EMBREE_CONFIG_VERSION ${EMBREE_VERSION_MAJOR})
- ENDIF()
- IF (APPLE AND NOT EMBREE_ZIP_MODE)
- CONFIGURE_FILE(scripts/install_macosx/uninstall.command uninstall.command @ONLY)
- INSTALL(PROGRAMS "${PROJECT_BINARY_DIR}/uninstall.command" DESTINATION ${CMAKE_INSTALL_BINDIR}/.. COMPONENT lib)
- ENDIF()
- IF (WIN32)
- SET(EMBREE_LIBRARY_NAME embree.lib)
- ELSE()
- SET(EMBREE_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}embree${CMAKE_SHARED_LIBRARY_SUFFIX})
- ENDIF()
- IF (WIN32 OR EMBREE_ZIP_MODE)
- # for local "installs" and on Windows we want the cmake config files placed
- # in the install root, such that users can point the CMake variable
- # embree_DIR just to the install folder
- SET(EMBREE_CMAKECONFIG_DIR ".")
- SET(EMBREE_RELATIV_ROOT_DIR ".")
- ELSE()
- SET(EMBREE_CMAKECONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/embree-${EMBREE_VERSION}")
- SET(EMBREE_RELATIV_ROOT_DIR "../../..")
- ENDIF()
- CONFIGURE_FILE(common/cmake/embree-config.cmake embree-config-install.cmake @ONLY)
- CONFIGURE_FILE(common/cmake/embree-config-version.cmake embree-config-version.cmake @ONLY)
- # create a config file for the build directory
- CONFIGURE_FILE(common/cmake/embree-config-builddir.cmake embree-config.cmake @ONLY)
- INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-config-install.cmake" DESTINATION ${EMBREE_CMAKECONFIG_DIR} RENAME "embree-config.cmake" COMPONENT devel)
- INSTALL(FILES "${PROJECT_BINARY_DIR}/embree-config-version.cmake" DESTINATION ${EMBREE_CMAKECONFIG_DIR} COMPONENT devel)
- ##############################################################
- # CPack specific stuff
- ##############################################################
- SET(CPACK_PACKAGE_NAME "Embree")
- SET(CPACK_PACKAGE_FILE_NAME "embree-${EMBREE_VERSION}")
- #SET(CPACK_PACKAGE_ICON ${PROJECT_SOURCE_DIR}/embree-doc/images/icon.png)
- #SET(CPACK_PACKAGE_RELOCATABLE TRUE)
- SET(CPACK_STRIP_FILES TRUE)
- SET(CPACK_PACKAGE_VERSION_MAJOR ${EMBREE_VERSION_MAJOR})
- SET(CPACK_PACKAGE_VERSION_MINOR ${EMBREE_VERSION_MINOR})
- SET(CPACK_PACKAGE_VERSION_PATCH ${EMBREE_VERSION_PATCH})
- SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Embree: High Performance Ray Tracing Kernels")
- SET(CPACK_PACKAGE_VENDOR "Intel Corporation")
- SET(CPACK_PACKAGE_CONTACT [email protected])
- SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "Library")
- SET(CPACK_COMPONENT_LIB_DESCRIPTION "The Embree library including documentation.")
- SET(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "Development")
- SET(CPACK_COMPONENT_DEVEL_DESCRIPTION "Header Files for C and ISPC required to develop applications with Embree.")
- SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples")
- SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Tutorials demonstrating how to use Embree.")
- # dependencies between components
- SET(CPACK_COMPONENT_DEVEL_DEPENDS lib)
- SET(CPACK_COMPONENT_EXAMPLES_DEPENDS lib)
- SET(CPACK_COMPONENT_LIB_REQUIRED ON) # always install the libs
- # point to readme and license files
- SET(CPACK_RESOURCE_FILE_README ${PROJECT_SOURCE_DIR}/README.md)
- SET(CPACK_RESOURCE_FILE_LICENSE ${PROJECT_SOURCE_DIR}/LICENSE.txt)
- # Windows specific settings
- IF(WIN32)
- IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
- SET(ARCH x64)
- SET(PROGRAMFILES "\$PROGRAMFILES64")
- SET(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME} x64")
- ELSE()
- SET(ARCH win32)
- SET(PROGRAMFILES "\$PROGRAMFILES")
- SET(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME} Win32")
- ENDIF()
- # NSIS specific settings
- IF (NOT EMBREE_ZIP_MODE)
- SET(CPACK_GENERATOR NSIS)
- SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.${ARCH}")
- SET(CPACK_COMPONENTS_ALL lib devel examples)
- SET(CPACK_NSIS_INSTALL_ROOT "${PROGRAMFILES}\\\\Intel")
- SET(CPACK_PACKAGE_INSTALL_DIRECTORY "Embree v${EMBREE_VERSION} ${ARCH}")
- SET(CPACK_NSIS_DISPLAY_NAME "Embree v${EMBREE_VERSION} ${ARCH}")
- SET(CPACK_NSIS_PACKAGE_NAME "Embree v${EMBREE_VERSION} ${ARCH}")
- SET(CPACK_NSIS_URL_INFO_ABOUT http://embree.github.io/)
- #SET(CPACK_NSIS_HELP_LINK http://embree.github.io/downloads.html#windows)
- SET(CPACK_NSIS_MUI_ICON ${PROJECT_SOURCE_DIR}/scripts/install_windows/icon32.ico)
- SET(CPACK_NSIS_CONTACT ${CPACK_PACKAGE_CONTACT})
- #SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS} "\n CreateDirectory \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\"")
- #SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS} "\n CreateDirectory \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\documentation\\\"")
- #SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS} "\n CreateDirectory \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\tutorials\\\" \n")
- #SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS} "\n ${UNINSTALL_LIST}\n RMDir \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\documentation\\\"")
- #SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS} "\n ${UNINSTALL_LIST}\n RMDir \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\tutorials\\\"")
- #SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS} "\n ${UNINSTALL_LIST}\n RMDir \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\"\n")
- IF (EMBREE_TESTING_PACKAGE)
- ADD_TEST(NAME "BuildPackage" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PROJECT_SOURCE_DIR}/scripts/package_win.bat ${CPACK_PACKAGE_FILE_NAME}.exe ${CMAKE_BUILD_TYPE})
- ENDIF()
- ELSE()
- SET(CPACK_GENERATOR ZIP)
- SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.${ARCH}.windows")
- SET(CPACK_MONOLITHIC_INSTALL 1)
- IF (EMBREE_TESTING_PACKAGE)
- ADD_TEST(NAME "BuildPackage" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PROJECT_SOURCE_DIR}/scripts/package_win.bat ${CPACK_PACKAGE_FILE_NAME}.zip ${CMAKE_BUILD_TYPE})
- ENDIF()
- ENDIF()
- # MacOSX specific settings
- ELSEIF(APPLE)
- CONFIGURE_FILE(README.md README.txt)
- SET(CPACK_RESOURCE_FILE_README ${PROJECT_BINARY_DIR}/README.txt)
- IF (NOT EMBREE_ZIP_MODE)
- SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
- SET(CPACK_GENERATOR PackageMaker)
- SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.x86_64")
- #SET(CPACK_COMPONENTS_ALL lib devel examples)
- SET(CPACK_MONOLITHIC_INSTALL 1)
- SET(CPACK_PACKAGE_NAME embree-${EMBREE_VERSION})
- SET(CPACK_PACKAGE_VENDOR "intel") # creates short name com.intel.embree2.xxx in pkgutil
- SET(CPACK_OSX_PACKAGE_VERSION 10.7)
- IF (EMBREE_TESTING_PACKAGE)
- ADD_TEST(NAME "BuildPackage" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PROJECT_SOURCE_DIR}/scripts/package_macosx.sh ${CMAKE_BUILD_TYPE} ${CPACK_PACKAGE_FILE_NAME}.dmg)
- ENDIF()
- ELSE()
- SET(CPACK_GENERATOR TGZ)
- SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.x86_64.macosx")
- SET(CPACK_MONOLITHIC_INSTALL 1)
- IF (EMBREE_TESTING_PACKAGE)
- ADD_TEST(NAME "BuildPackage" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PROJECT_SOURCE_DIR}/scripts/package_macosx.sh ${CMAKE_BUILD_TYPE} ${CPACK_PACKAGE_FILE_NAME}.tgz)
- ENDIF()
- ENDIF()
- # Linux specific settings
- ELSE()
- IF (NOT EMBREE_ZIP_MODE)
- SET(CPACK_GENERATOR RPM)
- SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-${CPACK_RPM_PACKAGE_RELEASE}.x86_64")
- SET(CPACK_COMPONENTS_ALL devel lib examples)
- SET(CPACK_RPM_COMPONENT_INSTALL ON)
- SET(CPACK_RPM_PACKAGE_LICENSE "ASL 2.0") # Apache Software License, Version 2.0
- SET(CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
- #SET(CPACK_RPM_CHANGELOG_FILE "") # ChangeLog of the RPM; also CHANGELOG.md is not in the required format
- SET(CPACK_RPM_PACKAGE_ARCHITECTURE x86_64)
- SET(CPACK_RPM_PACKAGE_URL http://embree.github.io/)
- SET(CPACK_RPM_DEFAULT_DIR_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # otherwise cmake directory has wrong 775 permissions
- # post install and uninstall scripts
- SET(CPACK_RPM_lib_POST_INSTALL_SCRIPT_FILE ${PROJECT_SOURCE_DIR}/common/cmake/rpm_ldconfig.sh)
- SET(CPACK_RPM_lib_POST_UNINSTALL_SCRIPT_FILE ${PROJECT_SOURCE_DIR}/common/cmake/rpm_ldconfig.sh)
- IF (EMBREE_TESTING_PACKAGE)
- ADD_TEST(NAME "BuildPackage" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PROJECT_SOURCE_DIR}/scripts/package_linux.sh ${EMBREE_ZIP_MODE} ${EMBREE_VERSION})
- ENDIF()
- ELSE()
-
- SET(CPACK_GENERATOR TGZ)
- SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.x86_64.linux")
- SET(CPACK_MONOLITHIC_INSTALL 1)
- IF (EMBREE_TESTING_PACKAGE)
- ADD_TEST(NAME "BuildPackage" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PROJECT_SOURCE_DIR}/scripts/package_linux.sh ${EMBREE_ZIP_MODE} ${EMBREE_VERSION})
- ENDIF()
- ENDIF()
-
- ENDIF()
|