ports/emulators/flycast/patches/patch-CMakeLists_txt

119 lines
4.5 KiB
Text

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)