119 lines
4.5 KiB
Text
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)
|