diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9598583ee0..050ced6600 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,6 +32,10 @@ jobs: $opts += " -DEMBREE_MAX_ISA=AVX512" $opts += " -DEMBREE_INSTALL_DEPENDENCIES=ON" $opts += " -DEMBREE_TESTING_INSTALL_TESTS=ON" + $opts += " -DCMAKE_INSTALL_BINDIR=bin" + $opts += " -DCMAKE_INSTALL_DOCDIR=doc" + $opts += " -DCMAKE_INSTALL_INCLUDEDIR=include" + $opts += " -DCMAKE_INSTALL_LIBDIR=lib" $opts += " -DCMAKE_INSTALL_TESTDIR=testing" $opts += " -DEMBREE_ZIP_MODE=ON" @@ -71,6 +75,7 @@ jobs: opts+=" -DCMAKE_INSTALL_BINDIR=bin" opts+=" -DCMAKE_INSTALL_DOCDIR=doc" opts+=" -DCMAKE_INSTALL_INCLUDEDIR=include" + opts+=" -DCMAKE_INSTALL_LIBDIR=lib" opts+=" -DCMAKE_INSTALL_TESTDIR=testing" opts+=" -DCMAKE_MACOSX_RPATH=ON" opts+=" -DCMAKE_SKIP_INSTALL_RPATH=OFF" @@ -122,6 +127,7 @@ jobs: opts+=" -DCMAKE_INSTALL_BINDIR=bin" opts+=" -DCMAKE_INSTALL_DOCDIR=doc" opts+=" -DCMAKE_INSTALL_INCLUDEDIR=include" + opts+=" -DCMAKE_INSTALL_LIBDIR=lib" opts+=" -DCMAKE_INSTALL_TESTDIR=testing" opts+=" -DCMAKE_MACOSX_RPATH=ON" opts+=" -DCMAKE_SKIP_INSTALL_RPATH=OFF" @@ -179,6 +185,10 @@ jobs: opts+=" -DEMBREE_MAX_ISA=AVX512" opts+=" -DEMBREE_INSTALL_DEPENDENCIES=ON" opts+=" -DEMBREE_TESTING_INSTALL_TESTS=ON" + opts+=" -DCMAKE_INSTALL_BINDIR=bin" + opts+=" -DCMAKE_INSTALL_DOCDIR=doc" + opts+=" -DCMAKE_INSTALL_INCLUDEDIR=include" + opts+=" -DCMAKE_INSTALL_LIBDIR=lib" opts+=" -DCMAKE_INSTALL_TESTDIR=testing" opts+=" -DEMBREE_ZIP_MODE=ON" @@ -226,6 +236,10 @@ jobs: $opts += " -DEMBREE_MAX_ISA=AVX512" $opts += " -DEMBREE_INSTALL_DEPENDENCIES=ON" $opts += " -DEMBREE_TESTING_INSTALL_TESTS=ON" + $opts += " -DCMAKE_INSTALL_BINDIR=bin" + $opts += " -DCMAKE_INSTALL_DOCDIR=doc" + $opts += " -DCMAKE_INSTALL_INCLUDEDIR=include" + $opts += " -DCMAKE_INSTALL_LIBDIR=lib" $opts += " -DCMAKE_INSTALL_TESTDIR=testing" $opts += " -DEMBREE_ZIP_MODE=ON" @@ -258,6 +272,10 @@ jobs: opts+=" -DEMBREE_MAX_ISA=AVX512" opts+=" -DEMBREE_INSTALL_DEPENDENCIES=ON" opts+=" -DEMBREE_TESTING_INSTALL_TESTS=ON" + opts+=" -DCMAKE_INSTALL_BINDIR=bin" + opts+=" -DCMAKE_INSTALL_DOCDIR=doc" + opts+=" -DCMAKE_INSTALL_INCLUDEDIR=include" + opts+=" -DCMAKE_INSTALL_LIBDIR=lib" opts+=" -DCMAKE_INSTALL_TESTDIR=testing" opts+=" -DEMBREE_ZIP_MODE=ON" diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake index daa4f49fa9..faa3d9e608 100644 --- a/common/cmake/package.cmake +++ b/common/cmake/package.cmake @@ -1,4 +1,4 @@ -## Copyright 2009-2021 Intel Corporation +## Copyright 2009 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 INCLUDE(GNUInstallDirs) @@ -236,6 +236,8 @@ IF (EMBREE_SYCL_SUPPORT) SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.sycl") SET(EMBREE_VERSION_SUFFIX) ENDIF() +# the testing package is platform independent, thus no platform suffix +SET(PACKAGE_TESTING_NAME "${CPACK_PACKAGE_FILE_NAME}-testing") #SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/embree-doc/images/icon.png") #SET(CPACK_PACKAGE_RELOCATABLE TRUE) IF(NOT WIN32) @@ -252,6 +254,7 @@ SET(CPACK_PACKAGE_CONTACT embree_support@intel.com) SET(CPACK_ARCHIVE_COMPONENT_INSTALL ON) SET(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) +SET(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY ON) SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "Library") SET(CPACK_COMPONENT_LIB_DESCRIPTION "The Embree library including documentation.") @@ -323,16 +326,23 @@ ELSE() ENDIF() ENDIF() +# name the group archives directly, the group name is only upper cased +SET(CPACK_ARCHIVE_EMBREE_FILE_NAME "${PACKAGE_BASE_NAME}") +SET(CPACK_ARCHIVE_EMBREE-TESTING_FILE_NAME "${PACKAGE_TESTING_NAME}") + add_custom_target( build ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} --target package -j8 - COMMAND ${CMAKE_COMMAND} -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_build.cmake + # repackage the tests without top-level directory, to be usable with the package of any platform + COMMAND ${CMAKE_CPACK_COMMAND} --config ${PROJECT_BINARY_DIR}/CPackConfig.cmake -B ${PROJECT_BINARY_DIR} -C ${CMAKE_BUILD_TYPE} -D CPACK_COMPONENTS_ALL=testing -D CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY=OFF + # files installed without component are not part of any package + COMMAND ${CMAKE_COMMAND} -E rm -f ${PACKAGE_BASE_NAME}-Unspecified.${PACKAGE_EXT} ) add_custom_target( - test_package ${CMAKE_COMMAND} -DWHAT="UNPACK" -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake - COMMAND cd embree_install/testing && ${CMAKE_COMMAND} -B build -DEMBREE_TESTING_INTENSITY=${EMBREE_TESTING_INTENSITY} - COMMAND ctest --test-dir ${CMAKE_CURRENT_BINARY_DIR}/embree_install/testing/build -VV -C ${CMAKE_BUILD_TYPE} --output-log ctest.output + test_package ${CMAKE_COMMAND} -DWHAT="UNPACK" -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_TESTING_NAME=${PACKAGE_TESTING_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake + COMMAND cd embree_install/${PACKAGE_BASE_NAME}/testing && ${CMAKE_COMMAND} -B build -DEMBREE_TESTING_INTENSITY=${EMBREE_TESTING_INTENSITY} + COMMAND ctest --test-dir ${CMAKE_CURRENT_BINARY_DIR}/embree_install/${PACKAGE_BASE_NAME}/testing/build -VV -C ${CMAKE_BUILD_TYPE} --output-log ctest.output COMMAND ${CMAKE_COMMAND} -DWHAT="CHECK" -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake ) @@ -344,8 +354,8 @@ else() endif() add_custom_target( - test_integration ${CMAKE_COMMAND} -DWHAT="UNPACK" -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake - COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${CMAKE_COMMAND} -B build --preset ${EMBREE_TESTING_INTEGRATION_PRESET} -Dembree_DIR="${CMAKE_CURRENT_BINARY_DIR}/embree_install/lib/cmake/embree-${EMBREE_VERSION}" + test_integration ${CMAKE_COMMAND} -DWHAT="UNPACK" -DPACKAGE_BASENAME=${PACKAGE_BASE_NAME} -DPACKAGE_TESTING_NAME=${PACKAGE_TESTING_NAME} -DPACKAGE_EXT=${PACKAGE_EXT} -P ${PROJECT_SOURCE_DIR}/scripts/package_test.cmake + COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${CMAKE_COMMAND} -B build --preset ${EMBREE_TESTING_INTEGRATION_PRESET} -Dembree_DIR="${CMAKE_CURRENT_BINARY_DIR}/embree_install/${PACKAGE_BASE_NAME}/${CMAKE_INSTALL_LIBDIR}/cmake/embree-${EMBREE_VERSION}" COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${CMAKE_COMMAND} --build build --config Release COMMAND cd ${PROJECT_SOURCE_DIR}/tests/integration/test_embree_release && ${INTEGRATE_BINARY} -) \ No newline at end of file +) diff --git a/doc/src/install.md b/doc/src/install.md index 6fe4c17750..c70c01b911 100644 --- a/doc/src/install.md +++ b/doc/src/install.md @@ -159,13 +159,15 @@ help of the device option in ocloc tool: Building Embree Tests --------------------- -Embree is released with a bundle of tests in an optional testing package. -To run these tests extract the testing package in the same folder as your embree installation. -e.g.: - - tar -xzf embree--testing.zip -C /path/to/installed/embree +Embree is released with a bundle of tests in an optional testing package: +[embree--testing.tar.gz](https://github.com/embree/embree/releases/download/v/embree--testing.tar.gz). +The testing package works with the Embree package of any platform. Extract it +into the folder of your Embree installation, e.g.: -The tests are extracted into a new folder inside you embree installation and can be run with: + tar -xzf embree--testing.tar.gz -C /path/to/installed/embree + +The tests are extracted into the `testing` folder inside the Embree installation +and can be run with: cd /path/to/installed/embree/testing cmake -B build diff --git a/scripts/package_build.cmake b/scripts/package_build.cmake deleted file mode 100644 index 4e0f9f882b..0000000000 --- a/scripts/package_build.cmake +++ /dev/null @@ -1,15 +0,0 @@ - -message("Fixing package names") - -message("PACKAGE_BASENAME = ${PACKAGE_BASENAME}") -message("PACKAGE_EXT = ${PACKAGE_EXT}") - -file(RENAME "${PACKAGE_BASENAME}-embree.${PACKAGE_EXT}" "${PACKAGE_BASENAME}.${PACKAGE_EXT}") -file(RENAME "${PACKAGE_BASENAME}-embree-testing.${PACKAGE_EXT}" "${PACKAGE_BASENAME}-testing.${PACKAGE_EXT}") -if (EXISTS "${PACKAGE_BASENAME}-Unspecified.${PACKAGE_EXT}") - file(REMOVE "${PACKAGE_BASENAME}-Unspecified.${PACKAGE_EXT}") -endif() - -message("Created packages:") -message("${PACKAGE_BASENAME}.${PACKAGE_EXT}") -message("${PACKAGE_BASENAME}-testing.${PACKAGE_EXT}") \ No newline at end of file diff --git a/scripts/package_test.cmake b/scripts/package_test.cmake index 33ed191bb8..2ad96c23b9 100644 --- a/scripts/package_test.cmake +++ b/scripts/package_test.cmake @@ -5,7 +5,8 @@ if(${WHAT} STREQUAL "UNPACK") message("PACKAGE_BASENAME = ${PACKAGE_BASENAME}") message("PACKAGE_EXT = ${PACKAGE_EXT}") file(ARCHIVE_EXTRACT INPUT "${PACKAGE_BASENAME}.${PACKAGE_EXT}" DESTINATION "embree_install") - file(ARCHIVE_EXTRACT INPUT "${PACKAGE_BASENAME}-testing.${PACKAGE_EXT}" DESTINATION "embree_install") + # the testing package has no top-level directory, extract it into the Embree package directory + file(ARCHIVE_EXTRACT INPUT "${PACKAGE_TESTING_NAME}.${PACKAGE_EXT}" DESTINATION "embree_install/${PACKAGE_BASENAME}") elseif(${WHAT} STREQUAL "CHECK") file(READ ctest.output output_content) string(FIND "${output_content}" "100% tests passed, 0 tests failed" pos) diff --git a/scripts/prepare-test-files-macos.sh b/scripts/prepare-test-files-macos.sh index 162301f1af..e38a5ce48a 100755 --- a/scripts/prepare-test-files-macos.sh +++ b/scripts/prepare-test-files-macos.sh @@ -70,8 +70,13 @@ else echo "Extracted: $archive" >&2 fi done - echo "EMBREE_DIR=$DEST_DIR" >> "$GITHUB_ENV" - echo "$DEST_DIR" # Output for immediate use + + # archives have a top level directory named after the package, except the testing package + EMBREE_DIR=$(echo "$DEST_DIR"/embree-*) + rm -rf "$EMBREE_DIR/testing" + mv "$DEST_DIR/testing" "$EMBREE_DIR" + echo "EMBREE_DIR=$EMBREE_DIR" >> "$GITHUB_ENV" + echo "$EMBREE_DIR" # Output for immediate use fi echo "Test files prepared successfully (macOS)" >&2 \ No newline at end of file diff --git a/scripts/prepare-test-files.ps1 b/scripts/prepare-test-files.ps1 index 522c534873..5cadc68d37 100644 --- a/scripts/prepare-test-files.ps1 +++ b/scripts/prepare-test-files.ps1 @@ -40,8 +40,13 @@ if ($TestType -eq "integration") { Expand-Archive -Path $_.FullName -DestinationPath $DestDir -Force Write-Host "Extracted: $($_.Name)" } - Write-Host "EMBREE_DIR=$DestDir" | Out-File -FilePath $env:GITHUB_ENV -Append - Write-Output $DestDir # Output for immediate use + + # archives have a top level directory named after the package, except the testing package + $EmbreeDir = (Get-ChildItem -Path $DestDir -Directory -Filter "embree-*" | Select-Object -First 1).FullName + Remove-Item -Recurse -Force "$EmbreeDir/testing" -ErrorAction SilentlyContinue + Move-Item "$DestDir/testing" $EmbreeDir + "EMBREE_DIR=$EmbreeDir" | Out-File -FilePath $env:GITHUB_ENV -Append + Write-Output $EmbreeDir # Output for immediate use } Write-Host "Test files prepared successfully" \ No newline at end of file diff --git a/scripts/prepare-test-files.sh b/scripts/prepare-test-files.sh index 48c99e042f..10c3d6b195 100755 --- a/scripts/prepare-test-files.sh +++ b/scripts/prepare-test-files.sh @@ -70,8 +70,13 @@ else echo "Extracted: $archive" >&2 fi done - echo "EMBREE_DIR=$DEST_DIR" >> "$GITHUB_ENV" - echo "$DEST_DIR" # Output for immediate use + + # archives have a top level directory named after the package, except the testing package + EMBREE_DIR=$(echo "$DEST_DIR"/embree-*) + rm -rf "$EMBREE_DIR/testing" + mv "$DEST_DIR/testing" "$EMBREE_DIR" + echo "EMBREE_DIR=$EMBREE_DIR" >> "$GITHUB_ENV" + echo "$EMBREE_DIR" # Output for immediate use fi echo "Test files prepared successfully" >&2 \ No newline at end of file diff --git a/superbuild/CMakeLists.txt b/superbuild/CMakeLists.txt index 70e1a02774..47f5c53af4 100644 --- a/superbuild/CMakeLists.txt +++ b/superbuild/CMakeLists.txt @@ -3,7 +3,7 @@ ## Global settings ## -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.10) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} @@ -184,4 +184,4 @@ if (NOT BUILD_DEPENDENCIES_ONLY) $<$:ispc> $<$:tbb> ) -endif() \ No newline at end of file +endif()