diff options
author | lat9nq <[email protected]> | 2021-06-13 01:15:54 -0400 |
---|---|---|
committer | lat9nq <[email protected]> | 2021-06-13 01:15:54 -0400 |
commit | 932c0184a72b716fa9af26e1e8d3d76a469a787c (patch) | |
tree | 6f365cf340974340c5b1e6bc6b2ae62305f93008 | |
parent | 8b5655a98e380a38436bb6002c55d9ba9cf8f16d (diff) | |
download | yuzu-mainline-932c0184a72b716fa9af26e1e8d3d76a469a787c.tar.gz yuzu-mainline-932c0184a72b716fa9af26e1e8d3d76a469a787c.zip |
cmake: Fix find_program usage for 3.15
yuzu requires CMake 3.15 yet find_program was using REQUIRED, which is
only available on 3.18 and later. Instead, we check for
"<VAR>-NOTFOUND".
In addition, check for additional requirements before building libusb or
FFmpeg with autotools. Otherwise, CMake configuration will pass yet
compilation will fail.
-rw-r--r-- | CMakeLists.txt | 10 | ||||
-rw-r--r-- | externals/libusb/CMakeLists.txt | 11 | ||||
-rw-r--r-- | src/video_core/host_shaders/CMakeLists.txt | 5 |
3 files changed, 24 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 97afaf1a9..f0e892a97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -473,7 +473,15 @@ if (YUZU_USE_BUNDLED_FFMPEG) # FFmpeg has source that requires one of nasm or yasm to assemble it. # REQUIRED throws an error if not found here during configuration rather than during compilation. - find_program(ASSEMBLER NAMES nasm yasm REQUIRED) + find_program(ASSEMBLER NAMES nasm yasm) + if ("${ASSEMBLER}" STREQUAL "ASSEMBLER-NOTFOUND") + message(FATAL_ERROR "One of either `nasm` or `yasm` not found but is required.") + endif() + + find_program(AUTOCONF autoconf) + if ("${AUTOCONF}" STREQUAL "AUTOCONF-NOTFOUND") + message(FATAL_ERROR "Required program `autoconf` not found.") + endif() set(FFmpeg_PREFIX ${PROJECT_SOURCE_DIR}/externals/ffmpeg) set(FFmpeg_BUILD_DIR ${PROJECT_BINARY_DIR}/externals/ffmpeg) diff --git a/externals/libusb/CMakeLists.txt b/externals/libusb/CMakeLists.txt index 7180fd42a..9a30b1e2a 100644 --- a/externals/libusb/CMakeLists.txt +++ b/externals/libusb/CMakeLists.txt @@ -5,6 +5,17 @@ if (MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux")) # GNU toolchains for some reason doesn't work with the later half of this CMakeLists after # updating to 1.0.24, so we do it the old-fashioned way for now. + # Require autoconf and libtoolize here, rather than crash during compilation + find_program(AUTOCONF autoconf) + if ("${AUTOCONF}" STREQUAL "AUTOCONF-NOTFOUND") + message(FATAL_ERROR "Required program `autoconf` not found.") + endif() + + find_program(LIBTOOLIZE libtoolize) + if ("${LIBTOOLIZE}" STREQUAL "LIBTOOLIZE-NOTFOUND") + message(FATAL_ERROR "Required program `libtoolize` not found.") + endif() + set(LIBUSB_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/libusb") set(LIBUSB_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libusb") diff --git a/src/video_core/host_shaders/CMakeLists.txt b/src/video_core/host_shaders/CMakeLists.txt index 2208e1922..c9cff7450 100644 --- a/src/video_core/host_shaders/CMakeLists.txt +++ b/src/video_core/host_shaders/CMakeLists.txt @@ -18,7 +18,10 @@ set(SHADER_FILES vulkan_uint8.comp ) -find_program(GLSLANGVALIDATOR "glslangValidator" REQUIRED) +find_program(GLSLANGVALIDATOR "glslangValidator") +if ("${GLSLANGVALIDATOR}" STREQUAL "GLSLANGVALIDATOR-NOTFOUND") + message(FATAL_ERROR "Required program `glslangValidator` not found.") +endif() set(GLSL_FLAGS "") set(QUIET_FLAG "--quiet") |