include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) set(CMAKE_C_FLAGS "") check_c_compiler_flag("-Wno-sign-compare" C_NO_SIGN_COMPARE) if (C_NO_SIGN_COMPARE) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-sign-compare") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare") endif() check_c_compiler_flag("-Wno-shadow" C_NO_SHADOW) if (C_NO_SHADOW) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-shadow") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-shadow") endif() check_c_compiler_flag("-Wno-cast-qual" C_NO_CAST_QUAL) if (C_NO_CAST_QUAL) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-qual") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-qual") endif() if (USE_STACKTRACES) add_subdirectory(backward) endif() add_subdirectory(benchmark) add_subdirectory(glm) add_subdirectory(stb_image) add_subdirectory(lua54) add_subdirectory(meshoptimizer) add_subdirectory(lzfse) add_subdirectory(gtest) add_subdirectory(simplecpp) add_subdirectory(yocto) find_package(PkgConfig) if (NOT PkgConfig_FOUND) message(STATUS "PkgConfig not found") endif() set(USE_SDL_VERSION 3 CACHE STRING "SDL version to use (2 or 3)") set_property(CACHE USE_SDL_VERSION PROPERTY STRINGS 2 3) if (USE_SDL_VERSION EQUAL 3) if (PkgConfig_FOUND) pkg_check_modules(SDL3 sdl3) if (SDL3_FOUND) message(STATUS "SDL3 system wide installation found") add_library(sdl3 INTERFACE) target_include_directories(sdl3 INTERFACE ${SDL3_INCLUDE_DIRS} ${SDL3_INCLUDE_DIRS}/SDL3 /usr/include/SDL3) target_link_libraries(sdl3 INTERFACE ${SDL3_LINK_LIBRARIES}) add_library(SDL3::SDL3 ALIAS sdl3) else() set(USE_SDL_VERSION 2 CACHE STRING "SDL version to use (2 or 3)" FORCE) endif() else() set(USE_SDL_VERSION 2 CACHE STRING "SDL version to use (2 or 3)" FORCE) endif() endif() if (USE_SDL_VERSION EQUAL 2) if (NOT USE_LIBS_FORCE_LOCAL) if (PkgConfig_FOUND) pkg_check_modules(SDL2 sdl2) if (SDL2_FOUND) message(STATUS "SDL system wide installation found") endif() endif() if (NOT SDL2_FOUND) find_package(SDL2) endif() endif() if (SDL2_FOUND OR EMSCRIPTEN) add_library(sdl2 INTERFACE) target_include_directories(sdl2 INTERFACE ${SDL2_INCLUDE_DIRS}) target_link_libraries(sdl2 INTERFACE ${SDL2_LINK_LIBRARIES}) add_library(SDL2::SDL2 ALIAS sdl2) else() set(SDL_CMAKE_DEBUG_POSTFIX "" CACHE STRING "Name suffix for debug builds" FORCE) set(SDL2_DISABLE_INSTALL ON CACHE BOOL "" FORCE) set(SDL2_DISABLE_UNINSTALL ON CACHE BOOL "" FORCE) set(SDL_STATIC_ENABLED_BY_DEFAULT ON CACHE BOOL "" FORCE) set(SDL_SHARED_ENABLED_BY_DEFAULT OFF CACHE BOOL "" FORCE) set(SDL_TEST_ENABLED_BY_DEFAULT OFF CACHE BOOL "" FORCE) set(SDL_FORCE_STATIC_VCRT ON CACHE BOOL "" FORCE) add_subdirectory(sdl2) add_library(sdl2 INTERFACE) target_link_libraries(sdl2 INTERFACE SDL2::SDL2main SDL2-static) endif() set(SDL_PCH ) target_precompile_headers(sdl2 INTERFACE ${SDL_PCH}) endif()