diff --git a/CMakeLists.txt b/CMakeLists.txt index 421738b57..05003216e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 3.7.2) project(OpenOMF C) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake-scripts) -INCLUDE(CheckFunctionExists) -INCLUDE(CheckSymbolExists) +include(CheckFunctionExists) +include(CheckSymbolExists) set(VERSION_MAJOR "0") set(VERSION_MINOR "6") @@ -11,60 +11,66 @@ set(VERSION_PATCH "6") set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") # Options -OPTION(USE_TESTS "Build unittests" OFF) -OPTION(USE_TOOLS "Build tools" OFF) -OPTION(USE_SANITIZERS "Enable Asan and Ubsan" OFF) -OPTION(USE_TIDY "Use clang-tidy for checks" OFF) -OPTION(USE_FORMAT "Use clang-format for checks" OFF) +option(USE_TESTS "Build unittests" OFF) +option(USE_TOOLS "Build tools" OFF) +option(USE_SANITIZERS "Enable Asan and Ubsan" OFF) +option(USE_TIDY "Use clang-tidy for checks" OFF) +option(USE_FORMAT "Use clang-format for checks" OFF) # These flags are used for all builds set(CMAKE_C_STANDARD 11) if(MSVC) - # remove cmake's default /W3 to avoid warning D9025 - string(REGEX REPLACE "/W3" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - # we would probably like to pass /Wall instead of /W4, but there's a lot - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /permissive- /W4") + # remove cmake's default /W3 to avoid warning D9025 + string(REGEX REPLACE "/W3" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + # we would probably like to pass /Wall instead of /W4, but there's a lot + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /permissive- /W4") else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter -Wformat -pedantic -Wvla") - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DDEBUGMODE -Werror -fno-omit-frame-pointer") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -g -O2 -fno-omit-frame-pointer -DNDEBUG") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -DNDEBUG") - set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Os -DNDEBUG") + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter -Wformat -pedantic -Wvla" + ) + set(CMAKE_C_FLAGS_DEBUG + "${CMAKE_C_FLAGS_DEBUG} -ggdb -DDEBUGMODE -Werror -fno-omit-frame-pointer" + ) + set(CMAKE_C_FLAGS_RELWITHDEBINFO + "${CMAKE_C_FLAGS_RELWITHDEBINFO} -g -O2 -fno-omit-frame-pointer -DNDEBUG") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -DNDEBUG") + set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Os -DNDEBUG") endif() -add_definitions(-DV_MAJOR=${VERSION_MAJOR} -DV_MINOR=${VERSION_MINOR} -DV_PATCH=${VERSION_PATCH}) +add_definitions(-DV_MAJOR=${VERSION_MAJOR} -DV_MINOR=${VERSION_MINOR} + -DV_PATCH=${VERSION_PATCH}) # Enable AddressSanitizer if requested if(USE_SANITIZERS) - add_compile_options("-fsanitize=address,undefined") - add_link_options("-fsanitize=address,undefined") - message(STATUS "Development: Asan and Ubsan enabled") + add_compile_options("-fsanitize=address,undefined") + add_link_options("-fsanitize=address,undefined") + message(STATUS "Development: Asan and Ubsan enabled") else() - message(STATUS "Development: Asan and Ubsan disabled") + message(STATUS "Development: Asan and Ubsan disabled") endif() # match vcpkg crt linkage if(MSVC AND VCPKG_TARGET_TRIPLET MATCHES "-windows-static$") - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") elseif(MSVC AND VCPKG_TARGET_TRIPLET MATCHES "-windows-static-md$") - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") endif() # See if we have Git, and use it to fetch current SHA1 hash find_package(Git) if(GIT_FOUND) - message(STATUS "Git found: ${GIT_EXECUTABLE}") - execute_process( - COMMAND ${GIT_EXECUTABLE} "rev-parse" "HEAD" - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE SHA1_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - message(STATUS "Git SHA1 Hash: ${SHA1_HASH}") - set_source_files_properties(src/main.c PROPERTIES COMPILE_DEFINITIONS SHA1_HASH="${SHA1_HASH}") + message(STATUS "Git found: ${GIT_EXECUTABLE}") + execute_process( + COMMAND ${GIT_EXECUTABLE} "rev-parse" "HEAD" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE SHA1_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE) + message(STATUS "Git SHA1 Hash: ${SHA1_HASH}") + set_source_files_properties(src/main.c PROPERTIES COMPILE_DEFINITIONS + SHA1_HASH="${SHA1_HASH}") endif() if(WIN32) - add_definitions(-DWIN32_LEAN_AND_MEAN) + add_definitions(-DWIN32_LEAN_AND_MEAN) endif() # System packages (hard dependencies) @@ -81,25 +87,27 @@ find_package(ZLIB) find_package(miniupnpc) find_package(natpmp) - - # Check functions and generate platform configuration file check_symbol_exists(strdup "string.h" HAVE_STD_STRDUP) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/platform.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/platform.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/platform.h.in + ${CMAKE_CURRENT_BINARY_DIR}/src/platform.h) # If tests are enabled, find CUnit if(USE_TESTS) - find_package(CUnit) + find_package(CUnit) endif() # Only strip on GCC (clang does not appreciate) if(CMAKE_C_COMPILER_ID STREQUAL "GNU") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wl,-s") - set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Wl,-s") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wl,-s") + set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Wl,-s") endif() # Find OpenOMF core sources -file(GLOB_RECURSE OPENOMF_SRC RELATIVE ${CMAKE_SOURCE_DIR} "src/*/*.c" "src/*/*.h") +file( + GLOB_RECURSE OPENOMF_SRC + RELATIVE ${CMAKE_SOURCE_DIR} + "src/*/*.c" "src/*/*.h") set(COREINCS src @@ -112,15 +120,9 @@ set(COREINCS ${XMP_INCLUDE_DIR} ${ENET_INCLUDE_DIR} ${PNG_INCLUDE_DIR} - ${ZLIB_INCLUDE_DIR} -) + ${ZLIB_INCLUDE_DIR}) -set(CORELIBS - ${CONFUSE_LIBRARY} - ${ENET_LIBRARY} - ${PNG_LIBRARY} - ${ZLIB_LIBRARY} -) +set(CORELIBS ${CONFUSE_LIBRARY} ${ENET_LIBRARY} ${PNG_LIBRARY} ${ZLIB_LIBRARY}) if(ARGTABLE2_FOUND) set(COREINCS ${COREINCS} ${ARGTABLE2_INCLUDE_DIR}) @@ -140,30 +142,30 @@ elseif(ARGTABLE3_FOUND) endif() if(MINIUPNPC_FOUND) - set(CORELIBS ${CORELIBS} ${MINIUPNPC_LIBRARY}) - set(COREINCS ${COREINCS} ${MINIUPNPC_INCLUDE_DIR}) - add_compile_definitions(MINIUPNPC_FOUND) + set(CORELIBS ${CORELIBS} ${MINIUPNPC_LIBRARY}) + set(COREINCS ${COREINCS} ${MINIUPNPC_INCLUDE_DIR}) + add_compile_definitions(MINIUPNPC_FOUND) endif() if(LIBNATPMP_FOUND) - set(CORELIBS ${CORELIBS} ${LIBNATPMP_LIBRARY}) - set(COREINCS ${COREINCS} ${LIBNATPMP_INCLUDE_DIR}) - add_compile_definitions(NATPMP_FOUND) + set(CORELIBS ${CORELIBS} ${LIBNATPMP_LIBRARY}) + set(COREINCS ${COREINCS} ${LIBNATPMP_INCLUDE_DIR}) + add_compile_definitions(NATPMP_FOUND) endif() # MingW build should add mingw32 lib if(MINGW) - set(CORELIBS mingw32 ${CORELIBS}) + set(CORELIBS mingw32 ${CORELIBS}) endif() # On windows, add winsock2, winmm, and shlwapi if(WIN32) - set(CORELIBS ${CORELIBS} ws2_32 winmm shlwapi) + set(CORELIBS ${CORELIBS} ws2_32 winmm shlwapi) endif() # On unix platforms, add libm (sometimes needed, it seems) if(UNIX) - SET(CORELIBS ${CORELIBS} m) + set(CORELIBS ${CORELIBS} m) endif() # Set include directories for all builds @@ -177,7 +179,7 @@ set(CORELIBS openomf_core ${CORELIBS}) # Set icon for windows executable if(WIN32) - SET(ICON_RESOURCE "resources/icons/openomf.rc") + set(ICON_RESOURCE "resources/icons/openomf.rc") endif() # Build the game binary @@ -186,168 +188,179 @@ set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT openomf) # This is used to copy shader files from source directory to the binary output directory during compile. add_custom_target( - copy_shaders ALL - COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/shaders ${CMAKE_BINARY_DIR}/shaders -) + copy_shaders ALL + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/shaders + ${CMAKE_BINARY_DIR}/shaders) add_dependencies(openomf copy_shaders) # Build tools if requested set(TOOL_TARGET_NAMES) -if (USE_TOOLS) - add_executable(bktool tools/bktool/main.c - tools/shared/animation_misc.c - tools/shared/conversions.c) - add_executable(aftool tools/aftool/main.c - tools/shared/animation_misc.c - tools/shared/conversions.c) - add_executable(soundtool tools/soundtool/main.c) - add_executable(languagetool tools/languagetool/main.c) - add_executable(afdiff tools/afdiff/main.c) - add_executable(rectool tools/rectool/main.c tools/shared/pilot.c) - add_executable(pcxtool tools/pcxtool/main.c) - add_executable(pictool tools/pictool/main.c) - add_executable(scoretool tools/scoretool/main.c) - add_executable(trntool tools/trntool/main.c tools/shared/pilot.c) - add_executable(altpaltool tools/altpaltool/main.c) - add_executable(chrtool tools/chrtool/main.c tools/shared/pilot.c) - add_executable(fonttool tools/fonttool/main.c) - add_executable(setuptool tools/setuptool/main.c tools/shared/pilot.c) - add_executable(stringparser tools/stringparser/main.c) - - list(APPEND TOOL_TARGET_NAMES - bktool - aftool - soundtool - languagetool - afdiff - rectool - pcxtool - pictool - scoretool - trntool - altpaltool - fonttool - chrtool - setuptool - stringparser - ) - message(STATUS "Development: CLI tools enabled") +if(USE_TOOLS) + add_executable(bktool tools/bktool/main.c tools/shared/animation_misc.c + tools/shared/conversions.c) + add_executable(aftool tools/aftool/main.c tools/shared/animation_misc.c + tools/shared/conversions.c) + add_executable(soundtool tools/soundtool/main.c) + add_executable(languagetool tools/languagetool/main.c) + add_executable(afdiff tools/afdiff/main.c) + add_executable(rectool tools/rectool/main.c tools/shared/pilot.c) + add_executable(pcxtool tools/pcxtool/main.c) + add_executable(pictool tools/pictool/main.c) + add_executable(scoretool tools/scoretool/main.c) + add_executable(trntool tools/trntool/main.c tools/shared/pilot.c) + add_executable(altpaltool tools/altpaltool/main.c) + add_executable(chrtool tools/chrtool/main.c tools/shared/pilot.c) + add_executable(fonttool tools/fonttool/main.c) + add_executable(setuptool tools/setuptool/main.c tools/shared/pilot.c) + add_executable(stringparser tools/stringparser/main.c) + + list( + APPEND + TOOL_TARGET_NAMES + bktool + aftool + soundtool + languagetool + afdiff + rectool + pcxtool + pictool + scoretool + trntool + altpaltool + fonttool + chrtool + setuptool + stringparser) + message(STATUS "Development: CLI tools enabled") else() - message(STATUS "Development: CLI tools disabled") + message(STATUS "Development: CLI tools disabled") endif() # Linting via clang-tidy if(USE_TIDY) - set_target_properties(openomf PROPERTIES C_CLANG_TIDY "clang-tidy") - set_target_properties(openomf_core PROPERTIES C_CLANG_TIDY "clang-tidy") - foreach(TARGET ${TOOL_TARGET_NAMES}) - set_target_properties(${TARGET} PROPERTIES C_CLANG_TIDY "clang-tidy") - endforeach() - message(STATUS "Development: clang-tidy enabled") + set_target_properties(openomf PROPERTIES C_CLANG_TIDY "clang-tidy") + set_target_properties(openomf_core PROPERTIES C_CLANG_TIDY "clang-tidy") + foreach(TARGET ${TOOL_TARGET_NAMES}) + set_target_properties(${TARGET} PROPERTIES C_CLANG_TIDY "clang-tidy") + endforeach() + message(STATUS "Development: clang-tidy enabled") else() - message(STATUS "Development: clang-tidy disabled") + message(STATUS "Development: clang-tidy disabled") endif() # Formatting via clang-format if(USE_FORMAT) - include(ClangFormat) - file( - GLOB_RECURSE - SRC_FILES - RELATIVE ${CMAKE_SOURCE_DIR} - "src/*.h" - "src/*.c" - "tools/*.c" - "tools/*.h" - "testing/*.c" - "testing/*.h" - ) - clangformat_setup(${SRC_FILES}) - message(STATUS "Development: clang-format enabled") + include(ClangFormat) + file( + GLOB_RECURSE SRC_FILES + RELATIVE ${CMAKE_SOURCE_DIR} + "src/*.h" "src/*.c" "tools/*.c" "tools/*.h" "testing/*.c" "testing/*.h") + clangformat_setup(${SRC_FILES}) + message(STATUS "Development: clang-format enabled") else() - message(STATUS "Development: clang-format disabled") + message(STATUS "Development: clang-format disabled") endif() if(WIN32) - # Don't show console in windows release builds (but enable if debug mode) - set_target_properties(openomf PROPERTIES WIN32_EXECUTABLE "$,OFF,ON>") - - # Make sure console apps are always in terminal output mode. - foreach(TARGET ${TOOL_TARGET_NAMES}) - set_target_properties(${TARGET} PROPERTIES WIN32_EXECUTABLE OFF) - endforeach() + # Don't show console in windows release builds (but enable if debug mode) + set_target_properties(openomf PROPERTIES WIN32_EXECUTABLE + "$,OFF,ON>") + + # Make sure console apps are always in terminal output mode. + foreach(TARGET ${TOOL_TARGET_NAMES}) + set_target_properties(${TARGET} PROPERTIES WIN32_EXECUTABLE OFF) + endforeach() endif() if(MINGW) - # Use static libgcc when on mingw - target_link_options(openomf PRIVATE -static-libgcc) - foreach(TARGET ${TOOL_TARGET_NAMES}) - target_link_options(${TARGET} PRIVATE -static-libgcc) - set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-mconsole") - endforeach() - - # Don't show console on mingw in release builds (but enable if debug mode) - if (NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug") - set_target_properties(openomf PROPERTIES LINK_FLAGS "-mwindows") - else () - set_target_properties(openomf PROPERTIES LINK_FLAGS "-mconsole") - endif () + # Use static libgcc when on mingw + target_link_options(openomf PRIVATE -static-libgcc) + foreach(TARGET ${TOOL_TARGET_NAMES}) + target_link_options(${TARGET} PRIVATE -static-libgcc) + set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-mconsole") + endforeach() + + # Don't show console on mingw in release builds (but enable if debug mode) + if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug") + set_target_properties(openomf PROPERTIES LINK_FLAGS "-mwindows") + else() + set_target_properties(openomf PROPERTIES LINK_FLAGS "-mconsole") + endif() endif() # Make sure libraries are linked target_link_libraries(openomf ${CORELIBS}) target_link_libraries(openomf SDL2::Main SDL2::Mixer Epoxy::Main) foreach(TARGET ${TOOL_TARGET_NAMES}) - target_link_libraries(${TARGET} ${CORELIBS}) - target_link_libraries(${TARGET} SDL2::Main SDL2::Mixer Epoxy::Main) + target_link_libraries(${TARGET} ${CORELIBS}) + target_link_libraries(${TARGET} SDL2::Main SDL2::Mixer Epoxy::Main) endforeach() # Testing stuff if(CUNIT_FOUND) - enable_testing() + enable_testing() - include_directories(${CUNIT_INCLUDE_DIR} testing/ src/) - SET(CORELIBS ${CORELIBS} ${CUNIT_LIBRARY}) + include_directories(${CUNIT_INCLUDE_DIR} testing/ src/) + set(CORELIBS ${CORELIBS} ${CUNIT_LIBRARY}) - file(GLOB_RECURSE TEST_SRC RELATIVE ${CMAKE_SOURCE_DIR} "testing/*.c") + file( + GLOB_RECURSE TEST_SRC + RELATIVE ${CMAKE_SOURCE_DIR} + "testing/*.c") - add_executable(openomf_test_main ${TEST_SRC}) + add_executable(openomf_test_main ${TEST_SRC}) - # This makes loading test resources possible - target_compile_definitions(openomf_test_main PRIVATE - TESTS_ROOT_DIR="${CMAKE_SOURCE_DIR}/testing") + # This makes loading test resources possible + target_compile_definitions( + openomf_test_main PRIVATE TESTS_ROOT_DIR="${CMAKE_SOURCE_DIR}/testing") - target_link_libraries(openomf_test_main ${CORELIBS} SDL2::Main SDL2::Mixer Epoxy::Main) + target_link_libraries(openomf_test_main ${CORELIBS} SDL2::Main SDL2::Mixer + Epoxy::Main) - if(MINGW) - # Always build as a console executable with mingw - set_target_properties(openomf_test_main PROPERTIES LINK_FLAGS "-mconsole") - endif() + if(MINGW) + # Always build as a console executable with mingw + set_target_properties(openomf_test_main PROPERTIES LINK_FLAGS "-mconsole") + endif() - add_test(main openomf_test_main) + add_test(main openomf_test_main) - message(STATUS "Development: Unit-tests are enabled") + message(STATUS "Development: Unit-tests are enabled") else() - message(STATUS "Development: Unit-tests are disabled") + message(STATUS "Development: Unit-tests are disabled") endif() # Copy some resources to destination resources directory to ease development setup. -file(COPY resources/openomf.bk resources/gamecontrollerdb.txt DESTINATION resources) +file(COPY resources/openomf.bk resources/gamecontrollerdb.txt + DESTINATION resources) # Installation if(WIN32) - # On windows, generate a flat directory structure under openomf/ subdir. - # This way we have an "openomf/" root directory inside the zip file. - install(TARGETS openomf RUNTIME DESTINATION openomf/ COMPONENT Binaries) - install(FILES resources/openomf.bk resources/gamecontrollerdb.txt DESTINATION openomf/resources/ COMPONENT Data) - install(DIRECTORY shaders/ DESTINATION openomf/shaders COMPONENT Data) - install(FILES README.md BUILD.md LICENSE DESTINATION openomf/ COMPONENT Data) + # On windows, generate a flat directory structure under openomf/ subdir. + # This way we have an "openomf/" root directory inside the zip file. + install(TARGETS openomf RUNTIME DESTINATION openomf/ COMPONENT Binaries) + install( + FILES resources/openomf.bk resources/gamecontrollerdb.txt + DESTINATION openomf/resources/ + COMPONENT Data) + install( + DIRECTORY shaders/ + DESTINATION openomf/shaders + COMPONENT Data) + install( + FILES README.md BUILD.md LICENSE + DESTINATION openomf/ + COMPONENT Data) else() - # On unixy systems, follow standard. - install(TARGETS openomf RUNTIME DESTINATION bin COMPONENT Binaries) - install(FILES resources/openomf.bk resources/gamecontrollerdb.txt resources/icons/openomf.png - DESTINATION share/games/openomf/ - COMPONENT Data - ) - install(DIRECTORY shaders/ DESTINATION share/games/openomf/shaders COMPONENT Data) + # On unixy systems, follow standard. + install(TARGETS openomf RUNTIME DESTINATION bin COMPONENT Binaries) + install( + FILES resources/openomf.bk resources/gamecontrollerdb.txt + resources/icons/openomf.png + DESTINATION share/games/openomf/ + COMPONENT Data) + install( + DIRECTORY shaders/ + DESTINATION share/games/openomf/shaders + COMPONENT Data) endif() diff --git a/cmake-scripts/ClangFormat.cmake b/cmake-scripts/ClangFormat.cmake index f33924508..ded579de5 100644 --- a/cmake-scripts/ClangFormat.cmake +++ b/cmake-scripts/ClangFormat.cmake @@ -16,7 +16,9 @@ function(prefix_clangformat_setup prefix) set(CLANGFORMAT_EXECUTABLE ${clangformat_executable_tmp}) unset(clangformat_executable_tmp) else() - message(FATAL_ERROR "ClangFormat: ${CLANGFORMAT_EXECUTABLE} not found! Aborting") + message( + FATAL_ERROR "ClangFormat: ${CLANGFORMAT_EXECUTABLE} not found! Aborting" + ) endif() endif() @@ -25,17 +27,11 @@ function(prefix_clangformat_setup prefix) list(APPEND clangformat_sources ${clangformat_source}) endforeach() - add_custom_target(${prefix}_clangformat - COMMAND - ${CLANGFORMAT_EXECUTABLE} - -style=file - -i - ${clangformat_sources} - WORKING_DIRECTORY - ${CMAKE_SOURCE_DIR} - COMMENT - "Formatting ${prefix} with ${CLANGFORMAT_EXECUTABLE} ..." - ) + add_custom_target( + ${prefix}_clangformat + COMMAND ${CLANGFORMAT_EXECUTABLE} -style=file -i ${clangformat_sources} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + COMMENT "Formatting ${prefix} with ${CLANGFORMAT_EXECUTABLE} ...") if(TARGET clangformat) add_dependencies(clangformat ${prefix}_clangformat) diff --git a/cmake-scripts/FindCUnit.cmake b/cmake-scripts/FindCUnit.cmake index 3bc5de1a5..4c7589141 100644 --- a/cmake-scripts/FindCUnit.cmake +++ b/cmake-scripts/FindCUnit.cmake @@ -1,29 +1,24 @@ +set(CUNIT_SEARCH_PATHS /usr/local/ /usr /opt) -SET(CUNIT_SEARCH_PATHS - /usr/local/ - /usr - /opt -) +find_path( + CUNIT_INCLUDE_DIR CUnit/CUnit.h + HINTS + PATH_SUFFIXES include + PATHS ${CUNIT_SEARCH_PATHS}) +find_library( + CUNIT_LIBRARY cunit + HINTS + PATH_SUFFIXES lib64 lib bin + PATHS ${CUNIT_SEARCH_PATHS}) -FIND_PATH(CUNIT_INCLUDE_DIR CUnit/CUnit.h - HINTS - PATH_SUFFIXES include - PATHS ${CUNIT_SEARCH_PATHS} -) -FIND_LIBRARY(CUNIT_LIBRARY cunit - HINTS - PATH_SUFFIXES lib64 lib bin - PATHS ${CUNIT_SEARCH_PATHS} -) +if(CUNIT_INCLUDE_DIR AND CUNIT_LIBRARY) + set(CUNIT_FOUND TRUE) +endif(CUNIT_INCLUDE_DIR AND CUNIT_LIBRARY) -IF (CUNIT_INCLUDE_DIR AND CUNIT_LIBRARY) - SET(CUNIT_FOUND TRUE) -ENDIF (CUNIT_INCLUDE_DIR AND CUNIT_LIBRARY) - -IF (CUNIT_FOUND) - MESSAGE(STATUS "Found CUnit: ${CUNIT_LIBRARY}") -ELSE (CUNIT_FOUND) - MESSAGE(STATUS "Could not find CUnit. Tests will not be available.") -ENDIF (CUNIT_FOUND) +if(CUNIT_FOUND) + message(STATUS "Found CUnit: ${CUNIT_LIBRARY}") +else(CUNIT_FOUND) + message(STATUS "Could not find CUnit. Tests will not be available.") +endif(CUNIT_FOUND) mark_as_advanced(CUNIT_INCLUDE_DIR CUNIT_LIBRARY CUNIT_SEARCH_PATHS) diff --git a/cmake-scripts/FindEpoxy.cmake b/cmake-scripts/FindEpoxy.cmake index 59707d381..50ed799da 100644 --- a/cmake-scripts/FindEpoxy.cmake +++ b/cmake-scripts/FindEpoxy.cmake @@ -1,28 +1,28 @@ set(EPOXY_SEARCH_PATHS /usr/local /usr /opt) -find_path(EPOXY_INCLUDE_DIR epoxy/gl.h - HINTS - PATH_SUFFIXES include - PATHS ${EPOXY_SEARCH_PATHS} -) -find_library(EPOXY_LIBRARY epoxy - HINTS - PATH_SUFFIXES lib64 lib - PATHS ${EPOXY_SEARCH_PATHS} -) +find_path( + EPOXY_INCLUDE_DIR epoxy/gl.h + HINTS + PATH_SUFFIXES include + PATHS ${EPOXY_SEARCH_PATHS}) +find_library( + EPOXY_LIBRARY epoxy + HINTS + PATH_SUFFIXES lib64 lib + PATHS ${EPOXY_SEARCH_PATHS}) -if (EPOXY_INCLUDE_DIR AND EPOXY_LIBRARY) - set(EPOXY_FOUND TRUE) -endif () +if(EPOXY_INCLUDE_DIR AND EPOXY_LIBRARY) + set(EPOXY_FOUND TRUE) +endif() -if (EPOXY_FOUND) - add_library(Epoxy::Main UNKNOWN IMPORTED) - set_target_properties(Epoxy::Main PROPERTIES - IMPORTED_LOCATION "${EPOXY_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${EPOXY_INCLUDE_DIR}") - message(STATUS "Found libepoxy: ${EPOXY_LIBRARY}") -else () - message(WARNING "Could not find libepoxy") -endif () +if(EPOXY_FOUND) + add_library(Epoxy::Main UNKNOWN IMPORTED) + set_target_properties( + Epoxy::Main PROPERTIES IMPORTED_LOCATION "${EPOXY_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${EPOXY_INCLUDE_DIR}") + message(STATUS "Found libepoxy: ${EPOXY_LIBRARY}") +else() + message(WARNING "Could not find libepoxy") +endif() mark_as_advanced(EPOXY_INCLUDE_DIR EPOXY_LIBRARY EPOXY_SEARCH_PATHS) diff --git a/cmake-scripts/FindSDL2.cmake b/cmake-scripts/FindSDL2.cmake index 800ba345b..986f8fc0f 100644 --- a/cmake-scripts/FindSDL2.cmake +++ b/cmake-scripts/FindSDL2.cmake @@ -156,26 +156,28 @@ if(VCPKG_TOOLCHAIN) else() set(SDL2_LIBRARIES SDL2::SDL2-static) endif() - get_target_property(SDL2_INCLUDE_DIR "${SDL2_LIBRARIES}" INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(SDL2_INCLUDE_DIR "${SDL2_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES) add_library(SDL2::Main INTERFACE IMPORTED) - target_link_libraries(SDL2::Main INTERFACE - SDL2::SDL2main - "${SDL2_LIBRARIES}" - ) + target_link_libraries(SDL2::Main INTERFACE SDL2::SDL2main + "${SDL2_LIBRARIES}") return() endif(SDL2_FOUND) endif(VCPKG_TOOLCHAIN) # Define options for searching SDL2 Library in a custom path -set(SDL2_PATH "" CACHE STRING "Custom SDL2 Library path") +set(SDL2_PATH + "" + CACHE STRING "Custom SDL2 Library path") set(_SDL2_NO_DEFAULT_PATH OFF) if(SDL2_PATH) set(_SDL2_NO_DEFAULT_PATH ON) endif() -set(SDL2_NO_DEFAULT_PATH ${_SDL2_NO_DEFAULT_PATH} +set(SDL2_NO_DEFAULT_PATH + ${_SDL2_NO_DEFAULT_PATH} CACHE BOOL "Disable search SDL2 Library in default path") unset(_SDL2_NO_DEFAULT_PATH) @@ -185,16 +187,15 @@ if(SDL2_NO_DEFAULT_PATH) endif() # Search for the SDL2 include directory -find_path(SDL2_INCLUDE_DIR SDL.h - HINTS - ENV SDL2DIR - ${SDL2_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES SDL2 - # path suffixes to search inside ENV{SDL2DIR} - include/SDL2 include +find_path( + SDL2_INCLUDE_DIR SDL.h + HINTS ENV SDL2DIR ${SDL2_NO_DEFAULT_PATH_CMD} + PATH_SUFFIXES + SDL2 + # path suffixes to search inside ENV{SDL2DIR} + include/SDL2 include PATHS ${SDL2_PATH} - DOC "Where the SDL2 headers can be found" -) + DOC "Where the SDL2 headers can be found") set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR}") @@ -206,15 +207,13 @@ endif() # SDL-2.0 is the name used by FreeBSD ports... # don't confuse it for the version number. -find_library(SDL2_LIBRARY +find_library( + SDL2_LIBRARY NAMES SDL2 SDL-2.0 - HINTS - ENV SDL2DIR - ${SDL2_NO_DEFAULT_PATH_CMD} + HINTS ENV SDL2DIR ${SDL2_NO_DEFAULT_PATH_CMD} PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} PATHS ${SDL2_PATH} - DOC "Where the SDL2 Library can be found" -) + DOC "Where the SDL2 Library can be found") set(SDL2_LIBRARIES "${SDL2_LIBRARY}") @@ -230,37 +229,31 @@ if(NOT SDL2_BUILDING_LIBRARY) endif() if(NOT SDL2_NO_DEFAULT_PATH) - set(SDL2MAIN_LIBRARY_PATHS - /sw - /opt/local - /opt/csw - /opt - "${SDL2MAIN_LIBRARY_PATHS}" - ) + set(SDL2MAIN_LIBRARY_PATHS /sw /opt/local /opt/csw /opt + "${SDL2MAIN_LIBRARY_PATHS}") endif() - find_library(SDL2MAIN_LIBRARY + find_library( + SDL2MAIN_LIBRARY NAMES SDL2main - HINTS - ENV SDL2DIR - ${SDL2_NO_DEFAULT_PATH_CMD} + HINTS ENV SDL2DIR ${SDL2_NO_DEFAULT_PATH_CMD} PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} PATHS ${SDL2MAIN_LIBRARY_PATHS} - DOC "Where the SDL2main library can be found" - ) + DOC "Where the SDL2main library can be found") unset(SDL2MAIN_LIBRARY_PATHS) endif() endif() find_package(Threads QUIET) if(NOT Threads_FOUND) - set(SDL2_THREADS_NOT_FOUND "Could NOT find Threads (Threads is required by SDL2).") + set(SDL2_THREADS_NOT_FOUND + "Could NOT find Threads (Threads is required by SDL2).") if(SDL2_FIND_REQUIRED) message(FATAL_ERROR ${SDL2_THREADS_NOT_FOUND}) else() - if(NOT SDL2_FIND_QUIETLY) - message(STATUS ${SDL2_THREADS_NOT_FOUND}) - endif() + if(NOT SDL2_FIND_QUIETLY) + message(STATUS ${SDL2_THREADS_NOT_FOUND}) + endif() return() endif() unset(SDL2_THREADS_NOT_FOUND) @@ -269,7 +262,9 @@ endif() # MinGW needs an additional link flag, -mwindows # It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -mwindows if(MINGW) - set(MINGW32_LIBRARY mingw32 "-mwindows" CACHE STRING "link flags for MinGW") + set(MINGW32_LIBRARY + mingw32 "-mwindows" + CACHE STRING "link flags for MinGW") endif() if(SDL2_LIBRARY) @@ -282,7 +277,6 @@ if(SDL2_LIBRARY) unset(_SDL2_MAIN_INDEX) endif() - set(SDL2_LIBRARIES ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) # For MinGW library @@ -294,13 +288,20 @@ endif() # Read SDL2 version if(SDL2_INCLUDE_DIR AND EXISTS "${SDL2_INCLUDE_DIR}/SDL_version.h") - file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$") - string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MAJOR "${SDL2_VERSION_MAJOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MINOR "${SDL2_VERSION_MINOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_PATCH "${SDL2_VERSION_PATCH_LINE}") - set(SDL2_VERSION_STRING ${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH}) + file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MAJOR_LINE + REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$") + file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MINOR_LINE + REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$") + file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_PATCH_LINE + REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$") + string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" + SDL2_VERSION_MAJOR "${SDL2_VERSION_MAJOR_LINE}") + string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" + SDL2_VERSION_MINOR "${SDL2_VERSION_MINOR_LINE}") + string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" + SDL2_VERSION_PATCH "${SDL2_VERSION_PATCH_LINE}") + set(SDL2_VERSION_STRING + ${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH}) unset(SDL2_VERSION_MAJOR_LINE) unset(SDL2_VERSION_MINOR_LINE) unset(SDL2_VERSION_PATCH_LINE) @@ -311,25 +312,21 @@ endif() include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 - REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR - VERSION_VAR SDL2_VERSION_STRING) +find_package_handle_standard_args( + SDL2 + REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR + VERSION_VAR SDL2_VERSION_STRING) if(SDL2MAIN_LIBRARY) set(FPHSA_NAME_MISMATCHED 1) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2main - REQUIRED_VARS SDL2MAIN_LIBRARY SDL2_INCLUDE_DIR - VERSION_VAR SDL2_VERSION_STRING) + find_package_handle_standard_args( + SDL2main + REQUIRED_VARS SDL2MAIN_LIBRARY SDL2_INCLUDE_DIR + VERSION_VAR SDL2_VERSION_STRING) endif() - -mark_as_advanced(SDL2_PATH - SDL2_NO_DEFAULT_PATH - SDL2_LIBRARY - SDL2MAIN_LIBRARY - SDL2_INCLUDE_DIR - SDL2_BUILDING_LIBRARY) - +mark_as_advanced(SDL2_PATH SDL2_NO_DEFAULT_PATH SDL2_LIBRARY SDL2MAIN_LIBRARY + SDL2_INCLUDE_DIR SDL2_BUILDING_LIBRARY) # SDL2:: targets (SDL2::Core and SDL2::Main) if(SDL2_FOUND) @@ -337,12 +334,14 @@ if(SDL2_FOUND) # SDL2::Core target if(SDL2_LIBRARY AND NOT TARGET SDL2::Core) add_library(SDL2::Core UNKNOWN IMPORTED) - set_target_properties(SDL2::Core PROPERTIES - IMPORTED_LOCATION "${SDL2_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}") - - set_property(TARGET SDL2::Core APPEND PROPERTY - INTERFACE_LINK_LIBRARIES Threads::Threads) + set_target_properties( + SDL2::Core PROPERTIES IMPORTED_LOCATION "${SDL2_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}") + + set_property( + TARGET SDL2::Core + APPEND + PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) endif() # SDL2::Main target @@ -352,29 +351,31 @@ if(SDL2_FOUND) if(SDL2_INCLUDE_DIR MATCHES ".framework" OR NOT SDL2MAIN_LIBRARY) add_library(SDL2::Main INTERFACE IMPORTED) - set_property(TARGET SDL2::Main PROPERTY - INTERFACE_LINK_LIBRARIES SDL2::Core) + set_property(TARGET SDL2::Main PROPERTY INTERFACE_LINK_LIBRARIES + SDL2::Core) elseif(SDL2MAIN_LIBRARY) # MinGW requires that the mingw32 library is specified before the # libSDL2main.a static library when linking. # The SDL2::MainInternal target is used internally to make sure that # CMake respects this condition. add_library(SDL2::MainInternal UNKNOWN IMPORTED) - set_property(TARGET SDL2::MainInternal PROPERTY - IMPORTED_LOCATION "${SDL2MAIN_LIBRARY}") - set_property(TARGET SDL2::MainInternal PROPERTY - INTERFACE_LINK_LIBRARIES SDL2::Core) + set_property(TARGET SDL2::MainInternal PROPERTY IMPORTED_LOCATION + "${SDL2MAIN_LIBRARY}") + set_property(TARGET SDL2::MainInternal PROPERTY INTERFACE_LINK_LIBRARIES + SDL2::Core) add_library(SDL2::Main INTERFACE IMPORTED) if(MINGW) # MinGW needs an additional link flag '-mwindows' and link to mingw32 - set_property(TARGET SDL2::Main PROPERTY - INTERFACE_LINK_LIBRARIES "mingw32" "-mwindows") + set_property(TARGET SDL2::Main PROPERTY INTERFACE_LINK_LIBRARIES + "mingw32" "-mwindows") endif() - set_property(TARGET SDL2::Main APPEND PROPERTY - INTERFACE_LINK_LIBRARIES SDL2::MainInternal) + set_property( + TARGET SDL2::Main + APPEND + PROPERTY INTERFACE_LINK_LIBRARIES SDL2::MainInternal) endif() endif() diff --git a/cmake-scripts/FindSDL2_mixer.cmake b/cmake-scripts/FindSDL2_mixer.cmake index 4367482b1..25e00ddcf 100644 --- a/cmake-scripts/FindSDL2_mixer.cmake +++ b/cmake-scripts/FindSDL2_mixer.cmake @@ -110,126 +110,139 @@ Original FindSDL_mixer.cmake module: # SDL2 Library required find_package(SDL2 QUIET) -if (NOT SDL2_FOUND) - set(SDL2_MIXER_SDL2_NOT_FOUND "Could NOT find SDL2 (SDL2 is required by SDL2_mixer).") - if (SDL2_mixer_FIND_REQUIRED) - message(FATAL_ERROR ${SDL2_MIXER_SDL2_NOT_FOUND}) - else () - if (NOT SDL2_mixer_FIND_QUIETLY) - message(STATUS ${SDL2_MIXER_SDL2_NOT_FOUND}) - endif () - return() - endif () - unset(SDL2_MIXER_SDL2_NOT_FOUND) -endif () +if(NOT SDL2_FOUND) + set(SDL2_MIXER_SDL2_NOT_FOUND + "Could NOT find SDL2 (SDL2 is required by SDL2_mixer).") + if(SDL2_mixer_FIND_REQUIRED) + message(FATAL_ERROR ${SDL2_MIXER_SDL2_NOT_FOUND}) + else() + if(NOT SDL2_mixer_FIND_QUIETLY) + message(STATUS ${SDL2_MIXER_SDL2_NOT_FOUND}) + endif() + return() + endif() + unset(SDL2_MIXER_SDL2_NOT_FOUND) +endif() if(VCPKG_TOOLCHAIN) - find_package(SDL2_mixer CONFIG) - if(SDL2_mixer_FOUND) - set(SDL2_MIXER_FOUND TRUE) - if(TARGET SDL2_mixer::SDL2_mixer) - add_library(SDL2::Mixer ALIAS SDL2_mixer::SDL2_mixer) - get_target_property(SDL2_MIXER_INCLUDE_DIRS SDL2_mixer::SDL2_mixer INTERFACE_INCLUDE_DIRECTORIES) - else() - add_library(SDL2::Mixer ALIAS SDL2_mixer::SDL2_mixer-static) - get_target_property(SDL2_MIXER_INCLUDE_DIRS SDL2_mixer::SDL2_mixer-static INTERFACE_INCLUDE_DIRECTORIES) - endif() - return() - endif(SDL2_mixer_FOUND) + find_package(SDL2_mixer CONFIG) + if(SDL2_mixer_FOUND) + set(SDL2_MIXER_FOUND TRUE) + if(TARGET SDL2_mixer::SDL2_mixer) + add_library(SDL2::Mixer ALIAS SDL2_mixer::SDL2_mixer) + get_target_property(SDL2_MIXER_INCLUDE_DIRS SDL2_mixer::SDL2_mixer + INTERFACE_INCLUDE_DIRECTORIES) + else() + add_library(SDL2::Mixer ALIAS SDL2_mixer::SDL2_mixer-static) + get_target_property(SDL2_MIXER_INCLUDE_DIRS SDL2_mixer::SDL2_mixer-static + INTERFACE_INCLUDE_DIRECTORIES) + endif() + return() + endif(SDL2_mixer_FOUND) endif(VCPKG_TOOLCHAIN) - # Define options for searching SDL2_mixer Library in a custom path -set(SDL2_MIXER_PATH "" CACHE STRING "Custom SDL2_mixer Library path") +set(SDL2_MIXER_PATH + "" + CACHE STRING "Custom SDL2_mixer Library path") set(_SDL2_MIXER_NO_DEFAULT_PATH OFF) -if (SDL2_MIXER_PATH) - set(_SDL2_MIXER_NO_DEFAULT_PATH ON) -endif () +if(SDL2_MIXER_PATH) + set(_SDL2_MIXER_NO_DEFAULT_PATH ON) +endif() -set(SDL2_MIXER_NO_DEFAULT_PATH ${_SDL2_MIXER_NO_DEFAULT_PATH} +set(SDL2_MIXER_NO_DEFAULT_PATH + ${_SDL2_MIXER_NO_DEFAULT_PATH} CACHE BOOL "Disable search SDL2_mixer Library in default path") unset(_SDL2_MIXER_NO_DEFAULT_PATH) set(SDL2_MIXER_NO_DEFAULT_PATH_CMD) -if (SDL2_MIXER_NO_DEFAULT_PATH) - set(SDL2_MIXER_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH) -endif () +if(SDL2_MIXER_NO_DEFAULT_PATH) + set(SDL2_MIXER_NO_DEFAULT_PATH_CMD NO_DEFAULT_PATH) +endif() # Search for the SDL2_mixer include directory -find_path(SDL2_MIXER_INCLUDE_DIR SDL_mixer.h - HINTS - ENV SDL2MIXERDIR - ENV SDL2DIR - ${SDL2_MIXER_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES SDL2 +find_path( + SDL2_MIXER_INCLUDE_DIR SDL_mixer.h + HINTS ENV SDL2MIXERDIR ENV SDL2DIR ${SDL2_MIXER_NO_DEFAULT_PATH_CMD} + PATH_SUFFIXES + SDL2 # path suffixes to search inside ENV{SDL2DIR} # and ENV{SDL2MIXERDIR} - include/SDL2 include - PATHS ${SDL2_MIXER_PATH} - DOC "Where the SDL2_mixer headers can be found" -) + include/SDL2 + include + PATHS ${SDL2_MIXER_PATH} + DOC "Where the SDL2_mixer headers can be found") -if (CMAKE_SIZEOF_VOID_P EQUAL 8) - set(VC_LIB_PATH_SUFFIX lib/x64) -else () - set(VC_LIB_PATH_SUFFIX lib/x86) -endif () +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(VC_LIB_PATH_SUFFIX lib/x64) +else() + set(VC_LIB_PATH_SUFFIX lib/x86) +endif() # Search for the SDL2_mixer library -find_library(SDL2_MIXER_LIBRARY - NAMES SDL2_mixer - HINTS - ENV SDL2MIXERDIR - ENV SDL2DIR - ${SDL2_MIXER_NO_DEFAULT_PATH_CMD} - PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} - PATHS ${SDL2_MIXER_PATH} - DOC "Where the SDL2_mixer Library can be found" -) +find_library( + SDL2_MIXER_LIBRARY + NAMES SDL2_mixer + HINTS ENV SDL2MIXERDIR ENV SDL2DIR ${SDL2_MIXER_NO_DEFAULT_PATH_CMD} + PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX} + PATHS ${SDL2_MIXER_PATH} + DOC "Where the SDL2_mixer Library can be found") # Read SDL2_mixer version -if (SDL2_MIXER_INCLUDE_DIR AND EXISTS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h") - file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+[0-9]+$") - file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" SDL2_MIXER_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+[0-9]+$") - string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MAJOR "${SDL2_MIXER_VERSION_MAJOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_MINOR "${SDL2_MIXER_VERSION_MINOR_LINE}") - string(REGEX REPLACE "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_MIXER_VERSION_PATCH "${SDL2_MIXER_VERSION_PATCH_LINE}") - set(SDL2_MIXER_VERSION_STRING ${SDL2_MIXER_VERSION_MAJOR}.${SDL2_MIXER_VERSION_MINOR}.${SDL2_MIXER_VERSION_PATCH}) - unset(SDL2_MIXER_VERSION_MAJOR_LINE) - unset(SDL2_MIXER_VERSION_MINOR_LINE) - unset(SDL2_MIXER_VERSION_PATCH_LINE) - unset(SDL2_MIXER_VERSION_MAJOR) - unset(SDL2_MIXER_VERSION_MINOR) - unset(SDL2_MIXER_VERSION_PATCH) -endif () +if(SDL2_MIXER_INCLUDE_DIR AND EXISTS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h") + file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" + SDL2_MIXER_VERSION_MAJOR_LINE + REGEX "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+[0-9]+$") + file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" + SDL2_MIXER_VERSION_MINOR_LINE + REGEX "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+[0-9]+$") + file(STRINGS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h" + SDL2_MIXER_VERSION_PATCH_LINE + REGEX "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+[0-9]+$") + string(REGEX + REPLACE "^#define[ \t]+SDL_MIXER_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" + SDL2_MIXER_VERSION_MAJOR "${SDL2_MIXER_VERSION_MAJOR_LINE}") + string(REGEX + REPLACE "^#define[ \t]+SDL_MIXER_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" + SDL2_MIXER_VERSION_MINOR "${SDL2_MIXER_VERSION_MINOR_LINE}") + string(REGEX + REPLACE "^#define[ \t]+SDL_MIXER_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" + SDL2_MIXER_VERSION_PATCH "${SDL2_MIXER_VERSION_PATCH_LINE}") + set(SDL2_MIXER_VERSION_STRING + ${SDL2_MIXER_VERSION_MAJOR}.${SDL2_MIXER_VERSION_MINOR}.${SDL2_MIXER_VERSION_PATCH} + ) + unset(SDL2_MIXER_VERSION_MAJOR_LINE) + unset(SDL2_MIXER_VERSION_MINOR_LINE) + unset(SDL2_MIXER_VERSION_PATCH_LINE) + unset(SDL2_MIXER_VERSION_MAJOR) + unset(SDL2_MIXER_VERSION_MINOR) + unset(SDL2_MIXER_VERSION_PATCH) +endif() set(SDL2_MIXER_LIBRARIES ${SDL2_MIXER_LIBRARY}) set(SDL2_MIXER_INCLUDE_DIRS ${SDL2_MIXER_INCLUDE_DIR}) include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_mixer - REQUIRED_VARS SDL2_MIXER_LIBRARIES SDL2_MIXER_INCLUDE_DIRS - VERSION_VAR SDL2_MIXER_VERSION_STRING) - - -mark_as_advanced(SDL2_MIXER_PATH - SDL2_MIXER_NO_DEFAULT_PATH - SDL2_MIXER_LIBRARY - SDL2_MIXER_INCLUDE_DIR) - - -if (SDL2_MIXER_FOUND) - - # SDL2::Mixer target - if (SDL2_MIXER_LIBRARY AND NOT TARGET SDL2::Mixer) - add_library(SDL2::Mixer UNKNOWN IMPORTED) - set_target_properties(SDL2::Mixer PROPERTIES - IMPORTED_LOCATION "${SDL2_MIXER_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}" - INTERFACE_LINK_LIBRARIES SDL2::Core) - endif () -endif () +find_package_handle_standard_args( + SDL2_mixer + REQUIRED_VARS SDL2_MIXER_LIBRARIES SDL2_MIXER_INCLUDE_DIRS + VERSION_VAR SDL2_MIXER_VERSION_STRING) + +mark_as_advanced(SDL2_MIXER_PATH SDL2_MIXER_NO_DEFAULT_PATH SDL2_MIXER_LIBRARY + SDL2_MIXER_INCLUDE_DIR) + +if(SDL2_MIXER_FOUND) + + # SDL2::Mixer target + if(SDL2_MIXER_LIBRARY AND NOT TARGET SDL2::Mixer) + add_library(SDL2::Mixer UNKNOWN IMPORTED) + set_target_properties( + SDL2::Mixer + PROPERTIES IMPORTED_LOCATION "${SDL2_MIXER_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_MIXER_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES SDL2::Core) + endif() +endif() diff --git a/cmake-scripts/Findargtable2.cmake b/cmake-scripts/Findargtable2.cmake index 91459d9ef..ae46f2121 100644 --- a/cmake-scripts/Findargtable2.cmake +++ b/cmake-scripts/Findargtable2.cmake @@ -1,42 +1,38 @@ if(VCPKG_TOOLCHAIN) - find_package(Argtable2 CONFIG) - if(Argtable2_FOUND) - set(ARGTABLE2_FOUND ON) - set(ARGTABLE2_LIBRARY argtable2::argtable2) - set(ARGTABLE2_INCLUDE_DIR) - set(ARGTABLE2_INCLUDE_DIRS) - set(ARGTABLE2_LIBRARIES ${ARGTABLE2_LIBRARY}) + find_package(Argtable2 CONFIG) + if(Argtable2_FOUND) + set(ARGTABLE2_FOUND ON) + set(ARGTABLE2_LIBRARY argtable2::argtable2) + set(ARGTABLE2_INCLUDE_DIR) + set(ARGTABLE2_INCLUDE_DIRS) + set(ARGTABLE2_LIBRARIES ${ARGTABLE2_LIBRARY}) - mark_as_advanced(ARGTABLE2_INCLUDE_DIR ARGTABLE2_LIBRARY) - return() - endif(Argtable2_FOUND) + mark_as_advanced(ARGTABLE2_INCLUDE_DIR ARGTABLE2_LIBRARY) + return() + endif(Argtable2_FOUND) endif(VCPKG_TOOLCHAIN) -set(ARGTABLE2_SEARCH_PATHS - /usr/local - /usr - /opt -) +set(ARGTABLE2_SEARCH_PATHS /usr/local /usr /opt) -find_path(ARGTABLE2_INCLUDE_DIR argtable2.h - HINTS - PATH_SUFFIXES include - PATHS ${ARGTABLE2_SEARCH_PATHS} -) -find_library(ARGTABLE2_LIBRARY argtable2 - HINTS - PATH_SUFFIXES lib64 lib - PATHS ${ARGTABLE2_SEARCH_PATHS} -) +find_path( + ARGTABLE2_INCLUDE_DIR argtable2.h + HINTS + PATH_SUFFIXES include + PATHS ${ARGTABLE2_SEARCH_PATHS}) +find_library( + ARGTABLE2_LIBRARY argtable2 + HINTS + PATH_SUFFIXES lib64 lib + PATHS ${ARGTABLE2_SEARCH_PATHS}) if(ARGTABLE2_INCLUDE_DIR AND ARGTABLE2_LIBRARY) - set(ARGTABLE2_FOUND TRUE) + set(ARGTABLE2_FOUND TRUE) endif() if(ARGTABLE2_FOUND) - set(ARGTABLE2_LIBRARIES ${ARGTABLE2_LIBRARY}) - set(ARGTABLE2_INCLUDE_DIRS ${ARGTABLE2_INCLUDE_DIR}) - message(STATUS "Found Argtable2: ${ARGTABLE2_LIBRARIES}") + set(ARGTABLE2_LIBRARIES ${ARGTABLE2_LIBRARY}) + set(ARGTABLE2_INCLUDE_DIRS ${ARGTABLE2_INCLUDE_DIR}) + message(STATUS "Found Argtable2: ${ARGTABLE2_LIBRARIES}") endif() mark_as_advanced(ARGTABLE2_INCLUDE_DIR ARGTABLE2_LIBRARY ARGTABLE2_SEARCH_PATHS) diff --git a/cmake-scripts/Findconfuse.cmake b/cmake-scripts/Findconfuse.cmake index 504df2a9c..eeb2ff6fb 100644 --- a/cmake-scripts/Findconfuse.cmake +++ b/cmake-scripts/Findconfuse.cmake @@ -1,40 +1,36 @@ - if(VCPKG_TOOLCHAIN) - find_package(unofficial-libconfuse CONFIG) - if(unofficial-libconfuse_FOUND) - get_target_property(CONFUSE_INCLUDE_DIR unofficial::libconfuse::libconfuse INTERFACE_INCLUDE_DIRECTORIES) - set(CONFUSE_LIBRARY unofficial::libconfuse::libconfuse) + find_package(unofficial-libconfuse CONFIG) + if(unofficial-libconfuse_FOUND) + get_target_property(CONFUSE_INCLUDE_DIR unofficial::libconfuse::libconfuse + INTERFACE_INCLUDE_DIRECTORIES) + set(CONFUSE_LIBRARY unofficial::libconfuse::libconfuse) - mark_as_advanced(CONFUSE_INCLUDE_DIR CONFUSE_LIBRARY) - return() - endif(unofficial-libconfuse_FOUND) + mark_as_advanced(CONFUSE_INCLUDE_DIR CONFUSE_LIBRARY) + return() + endif(unofficial-libconfuse_FOUND) endif(VCPKG_TOOLCHAIN) -SET(CONFUSE_SEARCH_PATHS - /usr/local/ - /usr - /opt -) +set(CONFUSE_SEARCH_PATHS /usr/local/ /usr /opt) -FIND_PATH(CONFUSE_INCLUDE_DIR confuse.h - HINTS - PATH_SUFFIXES include - PATHS ${CONFUSE_SEARCH_PATHS} -) -FIND_LIBRARY(CONFUSE_LIBRARY confuse - HINTS - PATH_SUFFIXES lib64 lib bin - PATHS ${CONFUSE_SEARCH_PATHS} -) +find_path( + CONFUSE_INCLUDE_DIR confuse.h + HINTS + PATH_SUFFIXES include + PATHS ${CONFUSE_SEARCH_PATHS}) +find_library( + CONFUSE_LIBRARY confuse + HINTS + PATH_SUFFIXES lib64 lib bin + PATHS ${CONFUSE_SEARCH_PATHS}) -IF (CONFUSE_INCLUDE_DIR AND CONFUSE_LIBRARY) - SET(CONFUSE_FOUND TRUE) -ENDIF (CONFUSE_INCLUDE_DIR AND CONFUSE_LIBRARY) +if(CONFUSE_INCLUDE_DIR AND CONFUSE_LIBRARY) + set(CONFUSE_FOUND TRUE) +endif(CONFUSE_INCLUDE_DIR AND CONFUSE_LIBRARY) -IF (CONFUSE_FOUND) - MESSAGE(STATUS "Found libConfuse: ${CONFUSE_LIBRARY}") -ELSE (CONFUSE_FOUND) - MESSAGE(WARNING "Could not find libConfuse") -ENDIF (CONFUSE_FOUND) +if(CONFUSE_FOUND) + message(STATUS "Found libConfuse: ${CONFUSE_LIBRARY}") +else(CONFUSE_FOUND) + message(WARNING "Could not find libConfuse") +endif(CONFUSE_FOUND) mark_as_advanced(CONFUSE_INCLUDE_DIR CONFUSE_LIBRARY CONFUSE_SEARCH_PATHS) diff --git a/cmake-scripts/Findenet.cmake b/cmake-scripts/Findenet.cmake index ff3f670f3..8d9de25ab 100644 --- a/cmake-scripts/Findenet.cmake +++ b/cmake-scripts/Findenet.cmake @@ -1,29 +1,24 @@ +set(ENET_SEARCH_PATHS /usr/local/ /usr /opt) -SET(ENET_SEARCH_PATHS - /usr/local/ - /usr - /opt -) +find_path( + ENET_INCLUDE_DIR enet/enet.h + HINTS ${ENET_ROOT} + PATH_SUFFIXES include include/enet + PATHS ${ENET_SEARCH_PATHS}) +find_library( + ENET_LIBRARY enet + HINTS ${ENET_ROOT} + PATH_SUFFIXES lib64 lib bin + PATHS ${ENET_SEARCH_PATHS}) -FIND_PATH(ENET_INCLUDE_DIR enet/enet.h - HINTS ${ENET_ROOT} - PATH_SUFFIXES include include/enet - PATHS ${ENET_SEARCH_PATHS} -) -FIND_LIBRARY(ENET_LIBRARY enet - HINTS ${ENET_ROOT} - PATH_SUFFIXES lib64 lib bin - PATHS ${ENET_SEARCH_PATHS} -) +if(ENET_INCLUDE_DIR AND ENET_LIBRARY) + set(ENET_FOUND TRUE) +endif(ENET_INCLUDE_DIR AND ENET_LIBRARY) -IF (ENET_INCLUDE_DIR AND ENET_LIBRARY) - SET(ENET_FOUND TRUE) -ENDIF (ENET_INCLUDE_DIR AND ENET_LIBRARY) - -IF (ENET_FOUND) - MESSAGE(STATUS "Found ENet: ${ENET_LIBRARY}") -ELSE (ENET_FOUND) - MESSAGE(WARNING "Could not find ENet") -ENDIF (ENET_FOUND) +if(ENET_FOUND) + message(STATUS "Found ENet: ${ENET_LIBRARY}") +else(ENET_FOUND) + message(WARNING "Could not find ENet") +endif(ENET_FOUND) mark_as_advanced(ENET_INCLUDE_DIR ENET_LIBRARY ENET_SEARCH_PATHS) diff --git a/cmake-scripts/Findminiupnpc.cmake b/cmake-scripts/Findminiupnpc.cmake index 02a5a7158..95adc8425 100644 --- a/cmake-scripts/Findminiupnpc.cmake +++ b/cmake-scripts/Findminiupnpc.cmake @@ -1,29 +1,24 @@ +set(MINIUPNPC_SEARCH_PATHS /usr/local/ /usr /opt) -SET(MINIUPNPC_SEARCH_PATHS - /usr/local/ - /usr - /opt -) +find_path( + MINIUPNPC_INCLUDE_DIR miniupnpc/miniupnpc.h + HINTS + PATH_SUFFIXES include + PATHS ${MINIUPNPC_SEARCH_PATHS}) +find_library( + MINIUPNPC_LIBRARY miniupnpc + HINTS + PATH_SUFFIXES lib64 lib bin + PATHS ${MINIUPNPC_SEARCH_PATHS}) -FIND_PATH(MINIUPNPC_INCLUDE_DIR miniupnpc/miniupnpc.h - HINTS - PATH_SUFFIXES include - PATHS ${MINIUPNPC_SEARCH_PATHS} -) -FIND_LIBRARY(MINIUPNPC_LIBRARY miniupnpc - HINTS - PATH_SUFFIXES lib64 lib bin - PATHS ${MINIUPNPC_SEARCH_PATHS} -) +if(MINIUPNPC_INCLUDE_DIR AND MINIUPNPC_LIBRARY) + set(MINIUPNPC_FOUND TRUE) +endif(MINIUPNPC_INCLUDE_DIR AND MINIUPNPC_LIBRARY) -IF (MINIUPNPC_INCLUDE_DIR AND MINIUPNPC_LIBRARY) - SET(MINIUPNPC_FOUND TRUE) -ENDIF (MINIUPNPC_INCLUDE_DIR AND MINIUPNPC_LIBRARY) - -IF (MINIUPNPC_FOUND) - MESSAGE(STATUS "Found libminiupnpc: ${MINIUPNPC_LIBRARY}") -ELSE (MINIUPNPC_FOUND) - MESSAGE(WARNING "Could not find libminiupnpc") -ENDIF (MINIUPNPC_FOUND) +if(MINIUPNPC_FOUND) + message(STATUS "Found libminiupnpc: ${MINIUPNPC_LIBRARY}") +else(MINIUPNPC_FOUND) + message(WARNING "Could not find libminiupnpc") +endif(MINIUPNPC_FOUND) mark_as_advanced(MINIUPNPC_INCLUDE_DIR MINIUPNPC_LIBRARY MINIUPNPC_SEARCH_PATHS) diff --git a/cmake-scripts/Findnatpmp.cmake b/cmake-scripts/Findnatpmp.cmake index f586c51e8..f7836f5a2 100644 --- a/cmake-scripts/Findnatpmp.cmake +++ b/cmake-scripts/Findnatpmp.cmake @@ -1,29 +1,24 @@ +set(LIBNATPMP_SEARCH_PATHS /usr/local/ /usr /opt) -SET(LIBNATPMP_SEARCH_PATHS - /usr/local/ - /usr - /opt -) +find_path( + LIBNATPMP_INCLUDE_DIR natpmp.h + HINTS + PATH_SUFFIXES include + PATHS ${LIBNATPMP_SEARCH_PATHS}) +find_library( + LIBNATPMP_LIBRARY natpmp + HINTS + PATH_SUFFIXES lib64 lib bin + PATHS ${LIBNATPMP_SEARCH_PATHS}) -FIND_PATH(LIBNATPMP_INCLUDE_DIR natpmp.h - HINTS - PATH_SUFFIXES include - PATHS ${LIBNATPMP_SEARCH_PATHS} -) -FIND_LIBRARY(LIBNATPMP_LIBRARY natpmp - HINTS - PATH_SUFFIXES lib64 lib bin - PATHS ${LIBNATPMP_SEARCH_PATHS} -) +if(LIBNATPMP_INCLUDE_DIR AND LIBNATPMP_LIBRARY) + set(LIBNATPMP_FOUND TRUE) +endif(LIBNATPMP_INCLUDE_DIR AND LIBNATPMP_LIBRARY) -IF (LIBNATPMP_INCLUDE_DIR AND LIBNATPMP_LIBRARY) - SET(LIBNATPMP_FOUND TRUE) -ENDIF (LIBNATPMP_INCLUDE_DIR AND LIBNATPMP_LIBRARY) - -IF (LIBNATPMP_FOUND) - MESSAGE(STATUS "Found libnatpmp: ${LIBNATPMP_LIBRARY}") -ELSE (LIBNATPMP_FOUND) - MESSAGE(WARNING "Could not find libnatpmp") -ENDIF (LIBNATPMP_FOUND) +if(LIBNATPMP_FOUND) + message(STATUS "Found libnatpmp: ${LIBNATPMP_LIBRARY}") +else(LIBNATPMP_FOUND) + message(WARNING "Could not find libnatpmp") +endif(LIBNATPMP_FOUND) mark_as_advanced(LIBNATPMP_INCLUDE_DIR LIBNATPMP_LIBRARY LIBNATPMP_SEARCH_PATHS) diff --git a/cmake-scripts/Findxmp.cmake b/cmake-scripts/Findxmp.cmake index 84edda782..51d96430c 100644 --- a/cmake-scripts/Findxmp.cmake +++ b/cmake-scripts/Findxmp.cmake @@ -1,45 +1,41 @@ - if(VCPKG_TOOLCHAIN) - find_package(libxmp CONFIG) - if(libxmp_FOUND) - if(TARGET libxmp::xmp_shared) - set(XMP_LIBRARY libxmp::xmp_shared) - else() - set(XMP_LIBRARY libxmp::xmp_static) - endif() - - get_target_property(XMP_INCLUDE_DIR "${XMP_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES) - - mark_as_advanced(XMP_INCLUDE_DIR XMP_LIBRARY) - return() + find_package(libxmp CONFIG) + if(libxmp_FOUND) + if(TARGET libxmp::xmp_shared) + set(XMP_LIBRARY libxmp::xmp_shared) + else() + set(XMP_LIBRARY libxmp::xmp_static) endif() -endif() -SET(XMP_SEARCH_PATHS - /usr/local/ - /usr - /opt -) + get_target_property(XMP_INCLUDE_DIR "${XMP_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES) -FIND_PATH(XMP_INCLUDE_DIR xmp.h - HINTS ${XMP_ROOT} - PATH_SUFFIXES include - PATHS ${XMP_SEARCH_PATHS} -) -FIND_LIBRARY(XMP_LIBRARY xmp xmp_dll - HINTS ${XMP_ROOT} - PATH_SUFFIXES lib64 lib - PATHS ${XMP_SEARCH_PATHS} -) + mark_as_advanced(XMP_INCLUDE_DIR XMP_LIBRARY) + return() + endif() +endif() -IF(XMP_INCLUDE_DIR AND XMP_LIBRARY) - SET(XMP_FOUND TRUE) -ENDIF() +set(XMP_SEARCH_PATHS /usr/local/ /usr /opt) + +find_path( + XMP_INCLUDE_DIR xmp.h + HINTS ${XMP_ROOT} + PATH_SUFFIXES include + PATHS ${XMP_SEARCH_PATHS}) +find_library( + XMP_LIBRARY xmp xmp_dll + HINTS ${XMP_ROOT} + PATH_SUFFIXES lib64 lib + PATHS ${XMP_SEARCH_PATHS}) + +if(XMP_INCLUDE_DIR AND XMP_LIBRARY) + set(XMP_FOUND TRUE) +endif() -IF(XMP_FOUND) - MESSAGE(STATUS "Found libxmp: ${XMP_LIBRARY}") -ELSE() - MESSAGE(WARNING "Could not find libxmp") -ENDIF() +if(XMP_FOUND) + message(STATUS "Found libxmp: ${XMP_LIBRARY}") +else() + message(WARNING "Could not find libxmp") +endif() mark_as_advanced(XMP_INCLUDE_DIR XMP_LIBRARY XMP_SEARCH_PATHS) diff --git a/vcpkg-ports/argtable3/portfile.cmake b/vcpkg-ports/argtable3/portfile.cmake index b41198ae6..4fe81d4e6 100644 --- a/vcpkg-ports/argtable3/portfile.cmake +++ b/vcpkg-ports/argtable3/portfile.cmake @@ -1,42 +1,48 @@ vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO argtable/argtable3 - REF "v${VERSION}" - SHA512 623197142fd1749b2fd5bc3e51758ae49c58ec8699b6afa5ecb2d0199d98f9c05366f92c5169c8039b5c417f4774fb4a09c879a7b04ddbed9d5e43585692ed7f - HEAD_REF master - PATCHES - "Fix-dependence-getopt.patch" - "Remove-DllMain.patch" -) + OUT_SOURCE_PATH + SOURCE_PATH + REPO + argtable/argtable3 + REF + "v${VERSION}" + SHA512 + 623197142fd1749b2fd5bc3e51758ae49c58ec8699b6afa5ecb2d0199d98f9c05366f92c5169c8039b5c417f4774fb4a09c879a7b04ddbed9d5e43585692ed7f + HEAD_REF + master + PATCHES + "Fix-dependence-getopt.patch" + "Remove-DllMain.patch") set(ARGTABLE3_REPLACE_GETOPT ON) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) - set(ARGTABLE3_REPLACE_GETOPT OFF) + set(ARGTABLE3_REPLACE_GETOPT OFF) endif() vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - -DARGTABLE3_ENABLE_CONAN=OFF - -DARGTABLE3_ENABLE_TESTS=OFF - -DARGTABLE3_ENABLE_EXAMPLES=OFF - -DARGTABLE3_REPLACE_GETOPT=${ARGTABLE3_REPLACE_GETOPT} -) + SOURCE_PATH + "${SOURCE_PATH}" + OPTIONS + -DARGTABLE3_ENABLE_CONAN=OFF + -DARGTABLE3_ENABLE_TESTS=OFF + -DARGTABLE3_ENABLE_EXAMPLES=OFF + -DARGTABLE3_REPLACE_GETOPT=${ARGTABLE3_REPLACE_GETOPT}) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") - vcpkg_cmake_config_fixup(CONFIG_PATH cmake) + vcpkg_cmake_config_fixup(CONFIG_PATH cmake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}") - vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) + vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) endif() if(NOT ARGTABLE3_REPLACE_GETOPT) - # fix dependency unofficial-getopt-win32 - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/Argtable3Config.cmake" "# Generated CMake target import file." -[[ + # fix dependency unofficial-getopt-win32 + vcpkg_replace_string( + "${CURRENT_PACKAGES_DIR}/share/${PORT}/Argtable3Config.cmake" + "# Generated CMake target import file." + [[ find_package(unofficial-getopt-win32 CONFIG REQUIRED) # Generated CMake target import file.]]) @@ -44,4 +50,7 @@ endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") -file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +file( + INSTALL "${SOURCE_PATH}/LICENSE" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" + RENAME copyright) diff --git a/vcpkg-ports/libepoxy/portfile.cmake b/vcpkg-ports/libepoxy/portfile.cmake index af8e672c0..f411224c6 100644 --- a/vcpkg-ports/libepoxy/portfile.cmake +++ b/vcpkg-ports/libepoxy/portfile.cmake @@ -7,53 +7,61 @@ # vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) #endif() -if (VCPKG_TARGET_IS_LINUX) - message(WARNING "${PORT} currently requires the following libraries from the system package manager:\n libx11-dev\n libgles2-mesa-dev\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libgles2-mesa-dev.") +if(VCPKG_TARGET_IS_LINUX) + message( + WARNING + "${PORT} currently requires the following libraries from the system package manager:\n libx11-dev\n libgles2-mesa-dev\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libgles2-mesa-dev." + ) endif() vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO anholt/libepoxy - REF 1.5.10 - SHA512 6786f31c6e2865e68a90eb912900a86bf56fd3df4d78a477356886ac3b6ef52ac887b9c7a77aa027525f868ae9e88b12e5927ba56069c2e115acd631fca3abee - HEAD_REF master - PATCHES - "StaticMsvc.patch" -) - -if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX) - set(OPTIONS -Dglx=no -Degl=no -Dx11=false) + OUT_SOURCE_PATH + SOURCE_PATH + REPO + anholt/libepoxy + REF + 1.5.10 + SHA512 + 6786f31c6e2865e68a90eb912900a86bf56fd3df4d78a477356886ac3b6ef52ac887b9c7a77aa027525f868ae9e88b12e5927ba56069c2e115acd631fca3abee + HEAD_REF + master + PATCHES + "StaticMsvc.patch") + +if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX) + set(OPTIONS -Dglx=no -Degl=no -Dx11=false) elseif(VCPKG_TARGET_IS_ANDROID) - set(OPTIONS -Dglx=no -Degl=yes -Dx11=false) + set(OPTIONS -Dglx=no -Degl=yes -Dx11=false) else() - set(OPTIONS -Dglx=yes -Degl=yes -Dx11=true) + set(OPTIONS -Dglx=yes -Degl=yes -Dx11=true) endif() if(VCPKG_TARGET_IS_WINDOWS) - list(APPEND OPTIONS -Dc_std=c99) - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - list(APPEND OPTIONS "-Dc_args=-DEPOXY_PUBLIC=extern") - endif() + list(APPEND OPTIONS -Dc_std=c99) + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND OPTIONS "-Dc_args=-DEPOXY_PUBLIC=extern") + endif() endif() -vcpkg_configure_meson( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${OPTIONS} - -Dtests=false -) +vcpkg_configure_meson(SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} + -Dtests=false) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/epoxy/common.h" "# if defined(_MSC_VER)" "# if defined(_WIN32)") - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/epoxy/common.h" "__declspec(dllimport)" "") - endif() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/epoxy/common.h" + "# if defined(_MSC_VER)" "# if defined(_WIN32)") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/epoxy/common.h" + "__declspec(dllimport)" "") + endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig") -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +file( + INSTALL "${SOURCE_PATH}/COPYING" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" + RENAME copyright)