add include and link directories unbundle xxhash, glslang and libchdr link against -lSDL2 instead of libSDL2.a by using PkgConfig Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt @@ -6,6 +6,11 @@ if(CCACHE_PROGRAM) set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM} CACHE STRING "Compiler launcher for CXX.") endif() +include_directories( ${LOCALBASE}/include + ${LOCALBASE}/include/SDL2 + ${X11BASE}/include ) +link_directories( ${LOCALBASE}/lib ) + option(ENABLE_CTEST "Enables unit tests" OFF) option(ENABLE_OPROFILE "Enable OProfile" OFF) option(TEST_AUTOMATION "Enable test automation" OFF) @@ -325,8 +330,11 @@ endif() option(BUILD_SHARED_LIBS "Build shared library" OFF) set(XXHASH_BUILD_XXHSUM OFF CACHE BOOL "Build the xxhsum binary") -add_subdirectory(core/deps/xxHash/cmake_unofficial) -target_link_libraries(${PROJECT_NAME} PRIVATE xxHash::xxhash) +find_library(XXHASH_LIBRARIES xxhash) +if(XXHASH_LIBRARIES) + message(STATUS "Found xxHash: ${XXHASH_LIBRARIES}") +endif(XXHASH_LIBRARIES) +target_link_libraries(${PROJECT_NAME} PRIVATE ${XXHASH_LIBRARIES}) option(BUILD_SHARED_LIBS "Build shared library" OFF) add_subdirectory(core/deps/glm) @@ -339,8 +347,29 @@ if(USE_VULKAN) option(ENABLE_GLSLANG_BINARIES "Builds glslangValidator and spirv-remap" OFF) option(ENABLE_HLSL "Enables HLSL input support" OFF) option(ENABLE_PCH "Enables Precompiled header" OFF) - add_subdirectory(core/deps/glslang EXCLUDE_FROM_ALL) - target_link_libraries(${PROJECT_NAME} PRIVATE SPIRV) + find_library(GLSLANG_LIBRARIES glslang) + if (GLSLANG_LIBRARIES) + set(GLSLANG_FOUND 1) + find_path(GLSLANG_INCLUDE_DIR GlslangToSpv.h PATH_SUFFIXES glslang/SPIRV) + set(GLSLANG_INCLUDE_DIR "${GLSLANG_INCLUDE_DIR}/..") + endif(GLSLANG_LIBRARIES) + find_library(SPIRV_LIBRARIES SPIRV) + if (SPIRV_LIBRARIES) + set(SPIRV_FOUND 1) + endif (SPIRV_LIBRARIES) + if (GLSLANG_FOUND) + message(STATUS "Found glslang: ${GLSLANG_LIBRARIES}") + message(STATUS "glslang include: ${GLSLANG_INCLUDE_DIR}") + else() + message(STATUS "glslang library not found.") + endif() + if (SPIRV_FOUND) + message(STATUS "Found SPIRV: ${SPIRV_LIBRARIES}") + else() + message(STATUS "spirv library not found.") + endif() + target_include_directories(${PROJECT_NAME} PRIVATE ${GLSLANG_INCLUDE_DIR}) + target_link_libraries(${PROJECT_NAME} PRIVATE ${GLSLANG_LIBRARIES} ${SPIRV_LIBRARIES}) endif() if(NOT LIBRETRO) @@ -356,29 +385,10 @@ if(NOT LIBRETRO) endif() if(NOT ANDROID AND NOT IOS) - if(NOT APPLE AND (NOT UNIX OR CMAKE_SYSTEM_NAME MATCHES "(FreeBSD|OpenBSD|NetBSD)")) - find_package(SDL2) - endif() - if(NOT SDL2_FOUND) - add_subdirectory(core/deps/SDL EXCLUDE_FROM_ALL) - set(SDL2_FOUND 1) - endif() - - # SDL2::SDL2main may or may not be available. It is e.g. required by Windows GUI applications - if(TARGET SDL2::SDL2main) - # It has an implicit dependency on SDL2 functions, so it MUST be added before SDL2::SDL2 (or SDL2::SDL2-static) - target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2main) - endif() - - if((APPLE OR WIN32) AND TARGET SDL2::SDL2-static) - target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2-static) - elseif(TARGET SDL2::SDL2) - target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2) - else() - target_include_directories(${PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS}) - target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL2_LIBRARIES}) - endif() - + find_package(PkgConfig) + pkg_check_modules(SDL2 REQUIRED sdl2) + target_include_directories(${PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL2_LIBRARIES}) target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL USE_SDL_AUDIO) target_sources(${PROJECT_NAME} PRIVATE core/sdl/sdl.cpp core/sdl/sdl.h core/sdl/sdl_gamepad.h core/sdl/sdl_keyboard.h) @@ -403,10 +413,6 @@ if(NOT LIBRETRO) endif() endif() -add_subdirectory(core/deps/libchdr EXCLUDE_FROM_ALL) -target_link_libraries(${PROJECT_NAME} PRIVATE chdr-static) -target_include_directories(${PROJECT_NAME} PRIVATE core/deps/libchdr/include) - if(NOT WITH_SYSTEM_ZLIB) target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/core/deps/libchdr/deps/zlib-1.2.11") target_link_libraries(${PROJECT_NAME} PRIVATE zlib) @@ -521,7 +527,7 @@ if(UNIX AND NOT APPLE AND NOT ANDROID) target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBRT}) endif() - target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_DL_LIBS}) + target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_DL_LIBS} chdr) endif() if(ASAN)