diff -r 5f819b90d479 -r 99b265e0d1d0 CMakeLists.txt --- a/CMakeLists.txt Thu Oct 11 23:43:31 2018 +0200 +++ b/CMakeLists.txt Fri Oct 12 03:40:21 2018 +0200 @@ -27,10 +27,8 @@ option(BUILD_SHARED_LIBS "Build libraries as shared modules (on)" ON) if(WIN32 OR APPLE) - option(PHYSFS_SYSTEM "Use system physfs (off)" OFF) option(LUA_SYSTEM "Use system lua (off)" OFF) else() - option(PHYSFS_SYSTEM "Use system physfs (on)" ON) option(LUA_SYSTEM "Use system lua (on)" ON) endif() @@ -61,7 +59,6 @@ set(BUILD_ENGINE_C ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) set(BUILD_ENGINE_LIBRARY ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) set(NOAUTOUPDATE ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) - set(PHYSFS_SYSTEM OFF CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) set(LUA_SYSTEM OFF CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) set(NOVIDEOREC ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) set(NOSERVER ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE) @@ -199,40 +196,32 @@ #physfs discovery -if(PHYSFS_SYSTEM) - if(NOT PHYSFS_LIBRARY OR NOT PHYSFS_INCLUDE_DIR) - find_package(PhysFS) - endif() - - find_file(physfs_h physfs.h ${PHYSFS_INCLUDE_DIR}) - if(physfs_h) - file(STRINGS ${physfs_h} physfs_majorversion REGEX "PHYSFS_VER_MAJOR[\t' ']+[0-9]+") - file(STRINGS ${physfs_h} physfs_minorversion REGEX "PHYSFS_VER_MINOR[\t' ']+[0-9]+") - file(STRINGS ${physfs_h} physfs_patchversion REGEX "PHYSFS_VER_PATCH[\t' ']+[0-9]+") - string(REGEX MATCH "([0-9]+)" physfs_majorversion "${physfs_majorversion}") - string(REGEX MATCH "([0-9]+)" physfs_minorversion "${physfs_minorversion}") - string(REGEX MATCH "([0-9]+)" physfs_patchversion "${physfs_patchversion}") - set(physfs_detected_ver "${physfs_majorversion}.${physfs_minorversion}.${physfs_patchversion}") +if(NOT PHYSFS_LIBRARY OR NOT PHYSFS_INCLUDE_DIR) + find_package(PhysFS) +endif() - if(${physfs_detected_ver} VERSION_LESS 2.0.0) - message(FATAL_ERROR "PhysFS version is too old (detected ${physfs_detected_ver}, required 2.0.0)\n" - "Perform an update or rerun cmake with -DPHYSFS_SYSTEM=off to build the internal version") - endif() - endif() +find_file(physfs_h physfs.h ${PHYSFS_INCLUDE_DIR}) +if(physfs_h) + file(STRINGS ${physfs_h} physfs_majorversion REGEX "PHYSFS_VER_MAJOR[\t' ']+[0-9]+") + file(STRINGS ${physfs_h} physfs_minorversion REGEX "PHYSFS_VER_MINOR[\t' ']+[0-9]+") + file(STRINGS ${physfs_h} physfs_patchversion REGEX "PHYSFS_VER_PATCH[\t' ']+[0-9]+") + string(REGEX MATCH "([0-9]+)" physfs_majorversion "${physfs_majorversion}") + string(REGEX MATCH "([0-9]+)" physfs_minorversion "${physfs_minorversion}") + string(REGEX MATCH "([0-9]+)" physfs_patchversion "${physfs_patchversion}") + set(physfs_detected_ver "${physfs_majorversion}.${physfs_minorversion}.${physfs_patchversion}") - if(PHYSFS_LIBRARY AND PHYSFS_INCLUDE_DIR) - #use an IMPORTED tharget so that we can just use 'physfs' to link - add_library(physfs UNKNOWN IMPORTED) - set_target_properties(physfs PROPERTIES IMPORTED_LOCATION ${PHYSFS_LIBRARY}) - else() - message(FATAL_ERROR "Missing PhysFS! Rerun cmake with -DPHYSFS_SYSTEM=off to build the internal version") + if(${physfs_detected_ver} VERSION_LESS 3.0.0) + message(FATAL_ERROR "PhysFS version is too old (detected ${physfs_detected_ver}, required 3.0.0)\n" + "Perform an update of PhysFS to fix this.") endif() +endif() + +if(PHYSFS_LIBRARY AND PHYSFS_INCLUDE_DIR) + #use an IMPORTED tharget so that we can just use 'physfs' to link + add_library(physfs UNKNOWN IMPORTED) + set_target_properties(physfs PROPERTIES IMPORTED_LOCATION ${PHYSFS_LIBRARY}) else() - if(NOT PHYSFS_LIBRARY OR NOT PHYSFS_INCLUDE_DIR) - message(STATUS "PhysFS will be provided by the bundled sources") - endif() - set(physfs_output_name "hwphysfs") - add_subdirectory(misc/libphysfs) + message(FATAL_ERROR "Missing PhysFS! Install PhysFS to fix this.") endif() find_package_or_disable_msg(LIBAV NOVIDEOREC "Video recording will not be built")