diff options
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | externals/find-modules/FindCatch2.cmake | 14 | ||||
-rw-r--r-- | externals/find-modules/FindLibzip.cmake | 25 | ||||
-rw-r--r-- | externals/find-modules/Findfmt.cmake | 26 | ||||
-rw-r--r-- | externals/find-modules/Findnlohmann_json.cmake | 14 | ||||
-rw-r--r-- | externals/find-modules/Findzstd.cmake | 14 |
6 files changed, 83 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0381e4af7..61321bf0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,6 +157,7 @@ macro(yuzu_find_packages) #"libzip 1.5 libzip/1.5.2@bincrafters/stable" "lz4 1.8 lz4/1.9.2" "nlohmann_json 3.7 nlohmann_json/3.7.3" + # we need to be careful as the version check might be broken https://github.com/xiph/opus/issues/110 "opus 1.3 opus/1.3.1" "ZLIB 1.2 zlib/1.2.11" "zstd 1.4 zstd/1.4.4" diff --git a/externals/find-modules/FindCatch2.cmake b/externals/find-modules/FindCatch2.cmake index a83c668bf..ce1d40bae 100644 --- a/externals/find-modules/FindCatch2.cmake +++ b/externals/find-modules/FindCatch2.cmake @@ -8,11 +8,25 @@ find_path(Catch2_INCLUDE_DIR PATH_SUFFIXES catch2 ) +if(Catch2_INCLUDE_DIR) + file(STRINGS "${Catch2_INCLUDE_DIR}/catch.hpp" _Catch2_version_lines + REGEX "#define[ \t]+CATCH_VERSION_(MAJOR|MINOR|PATCH)") + string(REGEX REPLACE ".*CATCH_VERSION_MAJOR +\([0-9]+\).*" "\\1" _Catch2_version_major "${_Catch2_version_lines}") + string(REGEX REPLACE ".*CATCH_VERSION_MINOR +\([0-9]+\).*" "\\1" _Catch2_version_minor "${_Catch2_version_lines}") + string(REGEX REPLACE ".*CATCH_VERSION_PATCH +\([0-9]+\).*" "\\1" _Catch2_version_patch "${_Catch2_version_lines}") + set(Catch2_VERSION "${_Catch2_version_major}.${_Catch2_version_minor}.${_Catch2_version_patch}") + unset(_Catch2_version_major) + unset(_Catch2_version_minor) + unset(_Catch2_version_patch) + unset(_Catch2_version_lines) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Catch2 FOUND_VAR Catch2_FOUND REQUIRED_VARS Catch2_INCLUDE_DIR + Catch2_VERSION VERSION_VAR Catch2_VERSION ) diff --git a/externals/find-modules/FindLibzip.cmake b/externals/find-modules/FindLibzip.cmake index 0b5148856..f36b1687a 100644 --- a/externals/find-modules/FindLibzip.cmake +++ b/externals/find-modules/FindLibzip.cmake @@ -28,26 +28,27 @@ find_library(LIBZIP_LIBRARY "$ENV{LIB_DIR}/lib" "$ENV{LIB}" /usr/local/lib /usr/lib ) -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Libzip - FOUND_VAR LIBZIP_FOUND - REQUIRED_VARS - LIBZIP_LIBRARY - LIBZIP_INCLUDE_DIR - LIBZIP_INCLUDE_DIR_ZIPCONF -) - -set(LIBZIP_VERSION 0) - if (LIBZIP_INCLUDE_DIR_ZIPCONF) FILE(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS) if (_LIBZIP_VERSION_CONTENTS) STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}") endif() + unset(_LIBZIP_VERSION_CONTENTS) endif() set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip") +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Libzip + FOUND_VAR LIBZIP_FOUND + REQUIRED_VARS + LIBZIP_LIBRARY + LIBZIP_INCLUDE_DIR + LIBZIP_INCLUDE_DIR_ZIPCONF + LIBZIP_VERSION + VERSION_VAR LIBZIP_VERSION +) + if(LIBZIP_FOUND) set(LIBZIP_LIBRARIES ${LIBZIP_LIBRARY}) set(LIBZIP_INCLUDE_DIRS ${LIBZIP_INCLUDE_DIR}) @@ -65,5 +66,7 @@ endif() mark_as_advanced( LIBZIP_INCLUDE_DIR + LIBZIP_INCLUDE_DIR_ZIPCONF LIBZIP_LIBRARY + LIBZIP_VERSION ) diff --git a/externals/find-modules/Findfmt.cmake b/externals/find-modules/Findfmt.cmake index e0a04a344..8ba51cbea 100644 --- a/externals/find-modules/Findfmt.cmake +++ b/externals/find-modules/Findfmt.cmake @@ -13,12 +13,38 @@ find_library(fmt_LIBRARY PATHS ${PC_fmt_LIBRARY_DIRS} ${CONAN_LIB_DIRS_fmt} ) +if(fmt_INCLUDE_DIR) + set(_fmt_version_file "${fmt_INCLUDE_DIR}/core.h") + if(NOT EXISTS "${_fmt_version_file}") + set(_fmt_version_file "${fmt_INCLUDE_DIR}/format.h") + endif() + if(EXISTS "${_fmt_version_file}") + # parse "#define FMT_VERSION 60200" to 6.2.0 + file(STRINGS "${_fmt_version_file}" fmt_VERSION_LINE + REGEX "^#define[ \t]+FMT_VERSION[ \t]+[0-9]+$") + string(REGEX REPLACE "^#define[ \t]+FMT_VERSION[ \t]+([0-9]+)$" + "\\1" fmt_VERSION "${fmt_VERSION_LINE}") + foreach(ver "fmt_VERSION_PATCH" "fmt_VERSION_MINOR" "fmt_VERSION_MAJOR") + math(EXPR ${ver} "${fmt_VERSION} % 100") + math(EXPR fmt_VERSION "(${fmt_VERSION} - ${${ver}}) / 100") + endforeach() + set(fmt_VERSION + "${fmt_VERSION_MAJOR}.${fmt_VERSION_MINOR}.${fmt_VERSION_PATCH}") + endif() + unset(_fmt_version_file) + unset(fmt_VERSION_LINE) + unset(fmt_VERSION_MAJOR) + unset(fmt_VERSION_MINOR) + unset(fmt_VERSION_PATCH) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(fmt FOUND_VAR fmt_FOUND REQUIRED_VARS fmt_LIBRARY fmt_INCLUDE_DIR + fmt_VERSION VERSION_VAR fmt_VERSION ) diff --git a/externals/find-modules/Findnlohmann_json.cmake b/externals/find-modules/Findnlohmann_json.cmake index a3bf1d774..b0c5b3e4e 100644 --- a/externals/find-modules/Findnlohmann_json.cmake +++ b/externals/find-modules/Findnlohmann_json.cmake @@ -8,11 +8,25 @@ find_path(nlohmann_json_INCLUDE_DIR PATH_SUFFIXES nlohmann ) +if(nlohmann_json_INCLUDE_DIR) + file(STRINGS "${nlohmann_json_INCLUDE_DIR}/json.hpp" _nlohmann_json_version_lines + REGEX "#define[ \t]+NLOHMANN_JSON_VERSION_(MAJOR|MINOR|PATCH)") + string(REGEX REPLACE ".*NLOHMANN_JSON_VERSION_MAJOR +\([0-9]+\).*" "\\1" _nlohmann_json_version_major "${_nlohmann_json_version_lines}") + string(REGEX REPLACE ".*NLOHMANN_JSON_VERSION_MINOR +\([0-9]+\).*" "\\1" _nlohmann_json_version_minor "${_nlohmann_json_version_lines}") + string(REGEX REPLACE ".*NLOHMANN_JSON_VERSION_PATCH +\([0-9]+\).*" "\\1" _nlohmann_json_version_patch "${_nlohmann_json_version_lines}") + set(nlohmann_json_VERSION "${_nlohmann_json_version_major}.${_nlohmann_json_version_minor}.${_nlohmann_json_version_patch}") + unset(_nlohmann_json_version_major) + unset(_nlohmann_json_version_minor) + unset(_nlohmann_json_version_patch) + unset(_nlohmann_json_version_lines) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(nlohmann_json FOUND_VAR nlohmann_json_FOUND REQUIRED_VARS nlohmann_json_INCLUDE_DIR + nlohmann_json_VERSION VERSION_VAR nlohmann_json_VERSION ) diff --git a/externals/find-modules/Findzstd.cmake b/externals/find-modules/Findzstd.cmake index cd0158b0c..539abbafc 100644 --- a/externals/find-modules/Findzstd.cmake +++ b/externals/find-modules/Findzstd.cmake @@ -11,12 +11,26 @@ find_library(zstd_LIBRARY PATHS ${PC_zstd_LIBRARY_DIRS} ) +if(zstd_INCLUDE_DIR) + file(STRINGS "${zstd_INCLUDE_DIR}/zstd.h" _zstd_version_lines + REGEX "#define[ \t]+ZSTD_VERSION_(MAJOR|MINOR|RELEASE)") + string(REGEX REPLACE ".*ZSTD_VERSION_MAJOR *\([0-9]*\).*" "\\1" _zstd_version_major "${_zstd_version_lines}") + string(REGEX REPLACE ".*ZSTD_VERSION_MINOR *\([0-9]*\).*" "\\1" _zstd_version_minor "${_zstd_version_lines}") + string(REGEX REPLACE ".*ZSTD_VERSION_RELEASE *\([0-9]*\).*" "\\1" _zstd_version_release "${_zstd_version_lines}") + set(zstd_VERSION "${_zstd_version_major}.${_zstd_version_minor}.${_zstd_version_release}") + unset(_zstd_version_major) + unset(_zstd_version_minor) + unset(_zstd_version_release) + unset(_zstd_version_lines) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(zstd FOUND_VAR zstd_FOUND REQUIRED_VARS zstd_LIBRARY zstd_INCLUDE_DIR + zstd_VERSION VERSION_VAR zstd_VERSION ) |