diff options
-rw-r--r-- | .gitlab/ci/configure_macos_common.cmake | 4 | ||||
-rw-r--r-- | Modules/CMakeDetermineCompilerId.cmake | 12 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 14 |
3 files changed, 20 insertions, 10 deletions
diff --git a/.gitlab/ci/configure_macos_common.cmake b/.gitlab/ci/configure_macos_common.cmake index 3d09779..4bd3c7d 100644 --- a/.gitlab/ci/configure_macos_common.cmake +++ b/.gitlab/ci/configure_macos_common.cmake @@ -2,9 +2,7 @@ # detect that Java is available and working, but a test machine then not have a # working Java installed. To work around this, just act as if Java is not # available on any CI machine. -set(Java_JAVA_EXECUTABLE "" CACHE FILEPATH "") -set(Java_JAVAC_EXECUTABLE "" CACHE FILEPATH "") -set(Java_JAR_EXECUTABLE "" CACHE FILEPATH "") +set(CMake_TEST_Java 0 CACHE FILEPATH "") # Qt binaries get placed inside the source directory, which causes them to not # be included in the install-time rpath, but we still want them in the diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index d907926..a982d2c 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -413,7 +413,14 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} endif() set(cuda_tools "CUDA ${CMAKE_VS_PLATFORM_TOOLSET_CUDA}") set(id_compile "CudaCompile") - set(id_ItemDefinitionGroup_entry "<CudaCompile><AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions></CudaCompile>") + if(CMAKE_VS_PLATFORM_NAME STREQUAL x64) + set(cuda_target "<TargetMachinePlatform>64</TargetMachinePlatform>") + endif() + foreach(arch ${CMAKE_CUDA_ARCHITECTURES}) + string(REGEX MATCH "[0-9]+" arch_name "${arch}") + string(APPEND cuda_codegen "compute_${arch_name},sm_${arch_name};") + endforeach() + set(id_ItemDefinitionGroup_entry "<CudaCompile>${cuda_target}<AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions><CodeGeneration>${cuda_codegen}</CodeGeneration></CudaCompile>") set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]]) if(CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR) set(id_CudaToolkitCustomDir "<CudaToolkitCustomDir>${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}nvcc</CudaToolkitCustomDir>") @@ -423,9 +430,6 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} string(CONCAT id_Import_props [[<Import Project="$(VCTargetsPath)\BuildCustomizations\]] "${cuda_tools}" [[.props" />]]) string(CONCAT id_Import_targets [[<Import Project="$(VCTargetsPath)\BuildCustomizations\]] "${cuda_tools}" [[.targets" />]]) endif() - if(CMAKE_VS_PLATFORM_NAME STREQUAL x64) - set(id_ItemDefinitionGroup_entry "<CudaCompile><TargetMachinePlatform>64</TargetMachinePlatform><AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions></CudaCompile>") - endif() if(CMAKE_CUDA_FLAGS MATCHES "(^| )-cudart +shared( |$)") set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart.lib</AdditionalDependencies>") else() diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 9aa401d..10406e3 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -3326,9 +3326,17 @@ if(BUILD_TESTING) endif() endif() - find_package(Java COMPONENTS Development QUIET) - if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE AND Java_JAR_EXECUTABLE AND NOT MINGW - AND NOT "${CMAKE_GENERATOR}" MATCHES "Xcode") + if(NOT DEFINED CMake_TEST_Java) + if(APPLE OR MINGW) + set(CMake_TEST_Java 0) + else() + set(CMake_TEST_Java 1) + endif() + endif() + if(CMake_TEST_Java) + find_package(Java COMPONENTS Development QUIET) + endif() + if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE AND Java_JAR_EXECUTABLE) set(JavaExportImport_BUILD_OPTIONS -DCMake_TEST_NESTED_MAKE_PROGRAM:FILEPATH=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}) ADD_TEST_MACRO(JavaExportImport JavaExportImport) |