mirror of
https://github.com/etlegacy/etlegacy-libs.git
synced 2025-02-23 11:51:10 +00:00
build: ninja compatibility fix
This commit is contained in:
parent
f57e109c1b
commit
48043d7419
1 changed files with 51 additions and 17 deletions
|
@ -36,6 +36,26 @@ foreach (_variableName ${_variableNames})
|
|||
endif()
|
||||
endforeach()
|
||||
|
||||
# a possible list of libraries that have "optimized" and "debug" between them
|
||||
# returns the library that matches the requested build profile
|
||||
function(etl_find_lib_path list _out)
|
||||
if(DEBUG_BUILD)
|
||||
set(_what "debug")
|
||||
else()
|
||||
set(_what "optimized")
|
||||
endif()
|
||||
|
||||
list(FIND ${list} "${_what}" _find_index)
|
||||
if ("${_find_index}" EQUAL "-1")
|
||||
set(${_out} ${list} PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
math(EXPR _find_index "${_find_index}+1")
|
||||
list(GET ${list} ${_find_index} _found_item)
|
||||
set(${_out} ${_found_item} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if(UNIX)
|
||||
|
||||
if(CROSS_COMPILE32)
|
||||
|
@ -87,6 +107,8 @@ if(FEATURE_SSL AND BUNDLED_WOLFSSL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
set(WOLFSSL_FLAGS "${CMAKE_C_FLAGS} -DOPENSSL_ALL=1 -DWOLFSSL_DES_ECB=1 -DHAVE_OCSP=1 -DHAVE_CRL=1")
|
||||
endif()
|
||||
|
||||
etl_find_lib_path(WOLFSSL_BUNDLED_LIBRARY _WOLFSSL_OUTPUT)
|
||||
|
||||
ExternalProject_Add(bundled_wolfssl
|
||||
DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}
|
||||
URL https://github.com/wolfSSL/wolfssl/archive/v5.0.0-stable.tar.gz
|
||||
|
@ -94,7 +116,7 @@ if(FEATURE_SSL AND BUNDLED_WOLFSSL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
SOURCE_DIR "${LIBS_DOWNLOAD_SRC_DIR}/wolfssl"
|
||||
PATCH_COMMAND ${WOLFSSL_PATCH_COMMAND}
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/wolfssl
|
||||
BUILD_BYPRODUCTS ${WOLFSSL_BUNDLED_LIBRARY}
|
||||
BUILD_BYPRODUCTS ${_WOLFSSL_OUTPUT}
|
||||
PREFIX ${LIBS_BINARY_DIR}/wolfssl
|
||||
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
|
@ -276,6 +298,8 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
list(APPEND CURL_CMAKE_ARGS -DCMAKE_USE_OPENSSL=OFF)
|
||||
endif()
|
||||
|
||||
etl_find_lib_path(CURL_BUNDLED_LIBRARY _CURL_OUTPUT)
|
||||
|
||||
# -DHTTP_ONLY=ON
|
||||
ExternalProject_Add(bundled_curl
|
||||
DEPENDS bundled_wolfssl bundled_openssl
|
||||
|
@ -286,7 +310,7 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
# SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/curl
|
||||
PREFIX ${LIBS_BINARY_DIR}/curl
|
||||
BINARY_DIR ${binary_dir}
|
||||
BUILD_BYPRODUCTS ${CURL_BUNDLED_LIBRARY}
|
||||
BUILD_BYPRODUCTS ${_CURL_OUTPUT}
|
||||
CMAKE_ARGS ${CURL_CMAKE_ARGS}
|
||||
)
|
||||
|
||||
|
@ -384,10 +408,12 @@ if(BUNDLED_OPENAL AND BUILD_CLIENT)
|
|||
set(OPENAL_BUNDLED_LIBRARIES "${binary_dir}/libOpenAL32${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
|
||||
etl_find_lib_path(OPENAL_BUNDLED_LIBRARIES _OPENAL_OUTPUT)
|
||||
|
||||
ExternalProject_Add(bundled_openal
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/openal
|
||||
BINARY_DIR ${binary_dir}
|
||||
BUILD_BYPRODUCTS ${OPENAL_BUNDLED_LIBRARIES}
|
||||
BUILD_BYPRODUCTS ${_OPENAL_OUTPUT}
|
||||
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/openal
|
||||
|
@ -434,7 +460,7 @@ if(BUNDLED_OGG_VORBIS AND BUILD_CLIENT)
|
|||
add_library(bundled_ogg_full INTERFACE)
|
||||
|
||||
if (APPLE)
|
||||
set(OGG_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/ogg/libogg${CMAKE_STATIC_LIBRARY_SUFFIX}" INTERNAL)
|
||||
set(OGG_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/ogg/libogg${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
ExternalProject_Add(bundled_ogg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/ogg
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/ogg
|
||||
|
@ -446,14 +472,14 @@ if(BUNDLED_OGG_VORBIS AND BUILD_CLIENT)
|
|||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/ogg
|
||||
)
|
||||
|
||||
set(OGG_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/ogg/lib/libogg.a" INTERNAL)
|
||||
set(OGG_BUNDLED_INCLUDE_DIR "${LIBS_BINARY_DIR}/ogg/include" INTERNAL)
|
||||
set(OGG_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/ogg/lib/libogg.a")
|
||||
set(OGG_BUNDLED_INCLUDE_DIR "${LIBS_BINARY_DIR}/ogg/include")
|
||||
|
||||
add_dependencies(bundled_ogg_full bundled_ogg)
|
||||
target_include_directories(bundled_ogg_full INTERFACE "${LIBS_BINARY_DIR}/ogg/include")
|
||||
target_link_libraries(bundled_ogg_full INTERFACE "${LIBS_BINARY_DIR}/ogg/lib/libogg.a")
|
||||
|
||||
set(VORBIS_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/vorbis/libogg${CMAKE_STATIC_LIBRARY_SUFFIX}" INTERNAL)
|
||||
set(VORBIS_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/vorbis/libogg${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
ExternalProject_Add(bundled_ogg_vorbis
|
||||
DEPENDS bundled_ogg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/vorbis
|
||||
|
@ -713,14 +739,14 @@ if(BUNDLED_SDL AND BUILD_CLIENT)
|
|||
add_library(bundled_sdl_int INTERFACE)
|
||||
|
||||
if(CMAKE_SYSTEM MATCHES "Darwin" OR WIN32)
|
||||
set(SDL32_BUNDLED_LIBRARIES optimized "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2main${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2maind${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(SDL2_BUNDLED_LIBRARIES optimized "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2main${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2maind${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
if(MSVC)
|
||||
set(SDL32_BUNDLED_LIBRARIES ${SDL32_BUNDLED_LIBRARIES} optimized "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2-static${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2-staticd${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(SDL2_BUNDLED_LIBRARIES ${SDL2_BUNDLED_LIBRARIES} optimized "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2-static${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2-staticd${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
else()
|
||||
set(SDL32_BUNDLED_LIBRARIES ${SDL32_BUNDLED_LIBRARIES} optimized "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(SDL2_BUNDLED_LIBRARIES ${SDL2_BUNDLED_LIBRARIES} optimized "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/lib/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
else()
|
||||
set(SDL32_BUNDLED_LIBRARIES optimized "${LIBS_BINARY_DIR}/sdl2/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(SDL2_BUNDLED_LIBRARIES optimized "${LIBS_BINARY_DIR}/sdl2/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
|
||||
set(SDL_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
|
||||
|
@ -744,6 +770,8 @@ if(BUNDLED_SDL AND BUILD_CLIENT)
|
|||
set(SDL_CMAKE_ARGS ${SDL_CMAKE_ARGS} -DSDL_VIDEO_OPENGLES=${FEATURE_RENDERER_GLES} -DSDL_FORCE_STATIC_VCRT=ON)
|
||||
endif()
|
||||
|
||||
etl_find_lib_path(SDL2_BUNDLED_LIBRARIES _SDL_OUTPUT)
|
||||
|
||||
ExternalProject_Add(bundled_sdl
|
||||
# SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/sdl2
|
||||
DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}
|
||||
|
@ -751,14 +779,14 @@ if(BUNDLED_SDL AND BUILD_CLIENT)
|
|||
URL https://github.com/libsdl-org/SDL/archive/release-2.24.1.tar.gz
|
||||
URL_HASH MD5=7c8999f150237df50b9d5ca158a40c56
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/sdl2
|
||||
BUILD_BYPRODUCTS ${SDL32_BUNDLED_LIBRARIES}
|
||||
BUILD_BYPRODUCTS ${_SDL_OUTPUT}
|
||||
CMAKE_ARGS ${SDL_CMAKE_ARGS}
|
||||
PREFIX ${LIBS_BINARY_DIR}/sdl2
|
||||
)
|
||||
set_target_properties(bundled_sdl PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
||||
add_dependencies(bundled_sdl_int bundled_sdl)
|
||||
target_link_libraries(bundled_sdl_int INTERFACE ${SDL32_BUNDLED_LIBRARIES})
|
||||
target_link_libraries(bundled_sdl_int INTERFACE ${SDL2_BUNDLED_LIBRARIES})
|
||||
target_include_directories(bundled_sdl_int INTERFACE "${LIBS_BINARY_DIR}/sdl2/include")
|
||||
endif()
|
||||
|
||||
|
@ -872,10 +900,12 @@ if(BUNDLED_JPEG AND BUILD_CLIENT)
|
|||
configure_file(${JPEG_LIB}/jconfig.h.cmake ${JPEG_LIB}/jconfig.h)
|
||||
configure_file(${JPEG_LIB}/jconfigint.h.cmake ${JPEG_LIB}/jconfigint.h)
|
||||
|
||||
etl_find_lib_path(JPEG_BUNDLED_LIBRARIES _JPEG_OUTPUT)
|
||||
|
||||
ExternalProject_Add(bundled_jpeg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/jpegturbo
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/jpegturbo
|
||||
BUILD_BYPRODUCTS ${JPEG_BUNDLED_LIBRARIES}
|
||||
BUILD_BYPRODUCTS ${_JPEG_OUTPUT}
|
||||
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DREQUIRE_SIMD=OFF -DWITH_12BIT=OFF
|
||||
|
@ -917,15 +947,17 @@ if(BUNDLED_PNG AND BUILD_CLIENT)
|
|||
set(PNG_OPTIMIZATION OFF)
|
||||
endif()
|
||||
|
||||
etl_find_lib_path(PNG_BUNDLED_LIBRARIES _PNG_OUTPUT)
|
||||
|
||||
ExternalProject_Add(bundled_png
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/libpng
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/libpng
|
||||
BUILD_BYPRODUCTS ${PNG_BUNDLED_LIBRARIES}
|
||||
BUILD_BYPRODUCTS ${_PNG_OUTPUT}
|
||||
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DPNG_SHARED=OFF -DPNG_STATIC=ON -DPNG_BUILD_ZLIB=ON -DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}
|
||||
-DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -DPNG_DEBUG=OFF -DPNG_HARDWARE_OPTIMIZATIONS=${PNG_OPTIMIZATION}
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
set_target_properties(bundled_png PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
@ -950,10 +982,12 @@ if(BUNDLED_FREETYPE AND BUILD_CLIENT)
|
|||
set(BUNDLED_FREETYPE_LIBRARIES "${binary_dir}/libfreetype${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
|
||||
etl_find_lib_path(BUNDLED_FREETYPE_LIBRARIES _FREETYPE_OUTPUT)
|
||||
|
||||
ExternalProject_Add(bundled_freetype
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/freetype
|
||||
BINARY_DIR ${binary_dir}
|
||||
BUILD_BYPRODUCTS ${BUNDLED_FREETYPE_LIBRARIES}
|
||||
BUILD_BYPRODUCTS ${_FREETYPE_OUTPUT}
|
||||
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
||||
|
|
Loading…
Reference in a new issue