mirror of
https://github.com/etlegacy/etlegacy-libs.git
synced 2025-04-09 16:05:00 +00:00
cmake: pass the current toolchains properties to the sub-projects
This commit is contained in:
parent
4d90a3eb09
commit
b05981e27c
1 changed files with 162 additions and 71 deletions
233
CMakeLists.txt
233
CMakeLists.txt
|
@ -17,6 +17,21 @@ if (APPLE)
|
|||
string(REPLACE ";" "$<SEMICOLON>" CMAKE_OSX_ARCHITECTURES_ "${CMAKE_OSX_ARCHITECTURES}")
|
||||
endif()
|
||||
|
||||
if (ANDROID)
|
||||
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
||||
foreach(dir ${dirs})
|
||||
message(INFO "Adding include dir='${dir}'")
|
||||
list(APPEND CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${dir})
|
||||
list(APPEND CMAKE_C_STANDARD_INCLUDE_DIRECTORIES ${dir})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if (CMAKE_INSTALL_LIBDIR)
|
||||
set(LIBS_LIB_DIR ${CMAKE_INSTALL_LIBDIR})
|
||||
else()
|
||||
set(LIBS_LIB_DIR lib)
|
||||
endif()
|
||||
|
||||
# Force the BUNDLED_<name> to OFF if the FEATURE_<name> is OFF. No more unwanted stuff being built.
|
||||
get_cmake_property(_variableNames VARIABLES)
|
||||
list (SORT _variableNames)
|
||||
|
@ -91,6 +106,87 @@ function(etl_find_lib_path list _out)
|
|||
endwhile()
|
||||
endfunction()
|
||||
|
||||
# ensure that all the required flags get passed to the sub-projects
|
||||
# these include the msvc runtime, apple architechtures and android toolchain flags
|
||||
function(etl_setup_cmake_args _list)
|
||||
if (NOT ${_list})
|
||||
set(${_list} "" PARENT_SCOPE)
|
||||
endif()
|
||||
list(APPEND ${_list} -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_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE})
|
||||
|
||||
if (APPLE)
|
||||
list(APPEND ${_list} -DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_})
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
list(APPEND ${_list} -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug>)
|
||||
endif()
|
||||
|
||||
if (CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
|
||||
list(APPEND ${_list} -DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=${CMAKE_C_STANDARD_INCLUDE_DIRECTORIES})
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
|
||||
list(APPEND ${_list} -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES})
|
||||
endif()
|
||||
|
||||
# Stuff that configures the Android toolchain file (needs to be kept up to date)
|
||||
if (ANDROID)
|
||||
if (ANDROID_TOOLCHAIN)
|
||||
list(APPEND ${_list} -DANDROID_TOOLCHAIN=${ANDROID_TOOLCHAIN})
|
||||
endif()
|
||||
|
||||
if (ANDROID_ABI)
|
||||
list(APPEND ${_list} -DANDROID_ABI=${ANDROID_ABI})
|
||||
endif()
|
||||
|
||||
if (ANDROID_PLATFORM)
|
||||
list(APPEND ${_list} -DANDROID_PLATFORM=${ANDROID_PLATFORM})
|
||||
endif()
|
||||
|
||||
if (ANDROID_STL)
|
||||
list(APPEND ${_list} -DANDROID_STL=${ANDROID_STL})
|
||||
endif()
|
||||
|
||||
if (ANDROID_PIE)
|
||||
list(APPEND ${_list} -DANDROID_PIE=${ANDROID_PIE})
|
||||
endif()
|
||||
|
||||
if (ANDROID_CPP_FEATURES)
|
||||
list(APPEND ${_list} -DANDROID_CPP_FEATURES=${ANDROID_CPP_FEATURES})
|
||||
endif()
|
||||
|
||||
if (ANDROID_ALLOW_UNDEFINED_SYMBOLS)
|
||||
list(APPEND ${_list} -DANDROID_ALLOW_UNDEFINED_SYMBOLS=${ANDROID_ALLOW_UNDEFINED_SYMBOLS})
|
||||
endif()
|
||||
|
||||
if (ANDROID_ARM_MODE)
|
||||
list(APPEND ${_list} -DANDROID_ARM_MODE=${ANDROID_ARM_MODE})
|
||||
endif()
|
||||
|
||||
if (ANDROID_DISABLE_FORMAT_STRING_CHECKS)
|
||||
list(APPEND ${_list} -DANDROID_DISABLE_FORMAT_STRING_CHECKS=${ANDROID_DISABLE_FORMAT_STRING_CHECKS})
|
||||
endif()
|
||||
|
||||
if (ANDROID_CCACHE)
|
||||
list(APPEND ${_list} -DANDROID_CCACHE=${ANDROID_CCACHE})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CMAKE_TOOLCHAIN_FILE)
|
||||
# list(APPEND ${_list} -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE})
|
||||
list(APPEND ${_list} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
|
||||
endif()
|
||||
|
||||
if (ARGC GREATER 1)
|
||||
list(APPEND ${_list} ${ARGN})
|
||||
endif()
|
||||
set(${_list} ${${_list}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if(UNIX)
|
||||
|
||||
if(CROSS_COMPILE32)
|
||||
|
@ -143,6 +239,15 @@ if(FEATURE_SSL AND BUNDLED_WOLFSSL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
#endif()
|
||||
|
||||
etl_find_lib_path(WOLFSSL_BUNDLED_LIBRARY _WOLFSSL_OUTPUT)
|
||||
etl_setup_cmake_args(wolfssl_cmake_args
|
||||
-DWOLFSSL_EXAMPLES=OFF -DWOLFSSL_CRYPT_TESTS=OFF -DWOLFSSL_OCSP=yes
|
||||
-DWOLFSSL_OPENSSLEXTRA=yes -DWOLFSSL_FAST_MATH=OFF -DWOLFSSL_HARDEN=yes
|
||||
-DWOLFSSL_OPENSSL_EXTRA=yes -DBUILD_PWDBASED=yes -DWOLFSSL_PWDBASED=yes
|
||||
-DBUILD_CRL=yes -DWOLFSSL_DES3=yes -DWOLFSSL_TLSX=yes -DWOLFSSL_CHACHA=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF -DWOLFSSL_CURL=yes -DWOLFSSL_OPENSSLALL=yes
|
||||
-DWOLFSSL_ASIO=yes -DWOLFSSL_CRL=yes
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/wolfssl
|
||||
)
|
||||
|
||||
ExternalProject_Add(bundled_wolfssl
|
||||
DOWNLOAD_DIR ${LIBS_DOWNLOAD_DIR}
|
||||
|
@ -152,19 +257,7 @@ if(FEATURE_SSL AND BUNDLED_WOLFSSL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
BINARY_DIR ${LIBS_BINARY_DIR}/wolfssl
|
||||
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}
|
||||
-DCMAKE_C_FLAGS=${WOLFSSL_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
-DWOLFSSL_EXAMPLES=OFF -DWOLFSSL_CRYPT_TESTS=OFF -DWOLFSSL_OCSP=yes
|
||||
-DWOLFSSL_OPENSSLEXTRA=yes -DWOLFSSL_FAST_MATH=OFF -DWOLFSSL_HARDEN=yes
|
||||
-DWOLFSSL_OPENSSL_EXTRA=yes -DBUILD_PWDBASED=yes -DWOLFSSL_PWDBASED=yes
|
||||
-DBUILD_CRL=yes -DWOLFSSL_DES3=yes -DWOLFSSL_TLSX=yes -DWOLFSSL_CHACHA=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF -DWOLFSSL_CURL=yes -DWOLFSSL_OPENSSLALL=yes
|
||||
-DWOLFSSL_ASIO=yes -DWOLFSSL_CRL=yes
|
||||
# -DCMAKE_POLICY_DEFAULT_CMP0091=NEW # This is just for MSCV
|
||||
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> # No more patching needed!
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/wolfssl
|
||||
CMAKE_ARGS ${wolfssl_cmake_args}
|
||||
)
|
||||
set_target_properties(bundled_wolfssl PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
||||
|
@ -295,9 +388,7 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
|
||||
set(CURL_DOWNLOAD_URL "https://github.com/curl/curl/releases/download/curl-8_5_0/curl-8.5.0.tar.gz")
|
||||
set(CURL_DOWNLOAD_HASH "MD5=0bc69288b20ae165ff4b7d6d7bbe70d2")
|
||||
set(CURL_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}
|
||||
etl_setup_cmake_args(CURL_CMAKE_ARGS
|
||||
-DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DENABLE_ARES=OFF -DENABLE_THREADED_RESOLVER=ON
|
||||
-DENABLE_CURLDEBUG=OFF -DBUILD_TESTING=OFF -DENABLE_IPV6=ON -DENABLE_MANUAL=OFF -DCURL_USE_LIBPSL=OFF
|
||||
-DUSE_NGHTTP2=OFF -DCURL_WINDOWS_SSPI=OFF -DCURL_ZLIB=AUTO -DCMAKE_USE_GSSAPI=OFF
|
||||
|
@ -368,7 +459,6 @@ if(BUNDLED_CURL AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
target_include_directories(bundled_curl_int INTERFACE "${LIBS_BINARY_DIR}/curl/include")
|
||||
elseif (APPLE)
|
||||
|
||||
list(APPEND CURL_CMAKE_ARGS -DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_})
|
||||
if(BUNDLED_WOLFSSL)
|
||||
include(CheckTypeSize)
|
||||
check_type_size("long long" SIZEOF_LONG_LONG)
|
||||
|
@ -469,17 +559,18 @@ if(BUNDLED_OPENAL AND BUILD_CLIENT)
|
|||
endif()
|
||||
|
||||
etl_find_lib_path(OPENAL_BUNDLED_LIBRARIES _OPENAL_OUTPUT)
|
||||
etl_setup_cmake_args(BUNDLED_OPENAL_CMAKE_ARGS
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/openal
|
||||
-DLIBTYPE=STATIC -DFORCE_STATIC_VCRT=ON
|
||||
-DALSOFT_UTILS=OFF -DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_EXAMPLES=OFF -DALSOFT_TESTS=OFF
|
||||
-DALSOFT_CONFIG=OFF -DALSOFT_HRTF_DEFS=OFF -DALSOFT_AMBDEC_PRESETS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(bundled_openal
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/openal
|
||||
BINARY_DIR ${binary_dir}
|
||||
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
|
||||
-DLIBTYPE=STATIC -DFORCE_STATIC_VCRT=ON
|
||||
-DALSOFT_UTILS=OFF -DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_EXAMPLES=OFF -DALSOFT_TESTS=OFF
|
||||
-DALSOFT_CONFIG=OFF -DALSOFT_HRTF_DEFS=OFF -DALSOFT_AMBDEC_PRESETS=OFF
|
||||
CMAKE_ARGS ${BUNDLED_OPENAL_CMAKE_ARGS}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
set_target_properties(bundled_openal PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
@ -490,16 +581,16 @@ if(BUNDLED_OPENAL AND BUILD_CLIENT)
|
|||
target_compile_definitions(bundled_openal_int INTERFACE AL_LIBTYPE_STATIC)
|
||||
elseif(UNIX)
|
||||
set(OPENAL_BUNDLED_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/libs/openal/libopenal.a")
|
||||
etl_setup_cmake_args(BUNDLED_OPENAL_CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/openal -DLIBTYPE=STATIC
|
||||
-DALSOFT_UTILS=OFF -DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_EXAMPLES=OFF -DALSOFT_TESTS=OFF
|
||||
-DALSOFT_CONFIG=OFF -DALSOFT_HRTF_DEFS=OFF -DALSOFT_AMBDEC_PRESETS=OFF -DALSOFT_BACKEND_SNDIO=OFF
|
||||
)
|
||||
ExternalProject_Add(bundled_openal
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/openal
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/openal
|
||||
BUILD_BYPRODUCTS ${OPENAL_BUNDLED_LIBRARIES}
|
||||
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
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DLIBTYPE=STATIC
|
||||
-DALSOFT_UTILS=OFF -DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_EXAMPLES=OFF -DALSOFT_TESTS=OFF
|
||||
-DALSOFT_CONFIG=OFF -DALSOFT_HRTF_DEFS=OFF -DALSOFT_AMBDEC_PRESETS=OFF -DALSOFT_BACKEND_SNDIO=OFF
|
||||
CMAKE_ARGS ${BUNDLED_OPENAL_CMAKE_ARGS}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
ExternalProject_Get_Property(bundled_openal binary_dir)
|
||||
|
@ -521,15 +612,12 @@ if(BUNDLED_OGG_VORBIS AND BUILD_CLIENT)
|
|||
|
||||
if (APPLE)
|
||||
set(OGG_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/ogg/lib/libogg${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
etl_setup_cmake_args(BUNDLED_OGG_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/ogg)
|
||||
ExternalProject_Add(bundled_ogg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/ogg
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/ogg
|
||||
BUILD_BYPRODUCTS ${OGG_BUNDLED_LIBRARIES}
|
||||
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}"
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/ogg
|
||||
CMAKE_ARGS ${BUNDLED_OGG_CMAKE_ARGS}
|
||||
)
|
||||
|
||||
add_dependencies(bundled_ogg_full bundled_ogg)
|
||||
|
@ -537,17 +625,18 @@ if(BUNDLED_OGG_VORBIS AND BUILD_CLIENT)
|
|||
target_link_libraries(bundled_ogg_full INTERFACE "${OGG_BUNDLED_LIBRARIES}")
|
||||
|
||||
set(VORBIS_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/vorbis/lib/libvorbis${CMAKE_STATIC_LIBRARY_SUFFIX}" "${LIBS_BINARY_DIR}/vorbis/lib/libvorbisfile${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
etl_setup_cmake_args(BUNDLED_OGG_VORBIS_CMAKE_ARGS
|
||||
-DCMAKE_LIBRARY_PATH=${LIBS_BINARY_DIR}/ogg
|
||||
-DOGG_ROOT=${LIBS_BINARY_DIR}/ogg
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/vorbis
|
||||
)
|
||||
|
||||
ExternalProject_Add(bundled_ogg_vorbis
|
||||
DEPENDS bundled_ogg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/vorbis
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/vorbis
|
||||
BUILD_BYPRODUCTS ${VORBIS_BUNDLED_LIBRARIES}
|
||||
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}"
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_} -DCMAKE_LIBRARY_PATH=${LIBS_BINARY_DIR}/ogg
|
||||
-DOGG_ROOT=${LIBS_BINARY_DIR}/ogg
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/vorbis
|
||||
CMAKE_ARGS ${BUNDLED_OGG_VORBIS_CMAKE_ARGS}
|
||||
)
|
||||
|
||||
add_dependencies(bundled_ogg_full bundled_ogg_vorbis)
|
||||
|
@ -817,22 +906,22 @@ if(BUNDLED_SDL AND BUILD_CLIENT)
|
|||
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(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(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()
|
||||
elseif (ANDROID)
|
||||
set(SDL2_BUNDLED_LIBRARIES "${LIBS_BINARY_DIR}/sdl2/${LIBS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
else()
|
||||
set(SDL2_BUNDLED_LIBRARIES optimized "${LIBS_BINARY_DIR}/sdl2/${LIBS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${LIBS_BINARY_DIR}/sdl2/${LIBS_LIB_DIR}/${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}
|
||||
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
||||
-DSDL_RENDER_D3D=OFF -DSDL_RENDER_METAL=OFF -DSDL_RENDER=OFF
|
||||
-DSDL_DUMMYVIDEO=OFF -DSDL_OPENGL=ON -DSDL_VULKAN=OFF
|
||||
-DSDL_KMSDRM=OFF
|
||||
-DSDL_SHARED=OFF -DSDL_SNDIO=OFF -DSDL_LIBC=ON
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/sdl2)
|
||||
etl_setup_cmake_args(SDL_CMAKE_ARGS
|
||||
-DSDL_RENDER_D3D=OFF -DSDL_RENDER_METAL=OFF -DSDL_RENDER=OFF
|
||||
-DSDL_DUMMYVIDEO=OFF -DSDL_OPENGL=ON -DSDL_VULKAN=OFF -DSDL_KMSDRM=OFF
|
||||
-DSDL_SHARED=OFF -DSDL_SNDIO=OFF -DSDL_LIBC=ON
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBS_BINARY_DIR}/sdl2)
|
||||
|
||||
# Bye bye X11
|
||||
if(APPLE)
|
||||
set(SDL_CMAKE_ARGS ${SDL_CMAKE_ARGS} -DSDL_VIDEO_X11=OFF -DSDL_X11=OFF -DSDL_VIDEO_X11_XINPUT=OFF -DSDL_WAYLAND=OFF -DSDL_OPENGLES=OFF -DSDL_METAL=OFF -DSDL_COCOA=ON -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_})
|
||||
set(SDL_CMAKE_ARGS ${SDL_CMAKE_ARGS} -DSDL_VIDEO_X11=OFF -DSDL_X11=OFF -DSDL_VIDEO_X11_XINPUT=OFF -DSDL_WAYLAND=OFF -DSDL_OPENGLES=OFF -DSDL_METAL=OFF -DSDL_COCOA=ON)
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
# Wayland requires OpenglES support so that's why its enabled here.
|
||||
set(SDL_CMAKE_ARGS ${SDL_CMAKE_ARGS} -DSDL_X11=ON -DSDL_VIDEO_X11=ON -DSDL_VIDEO_X11_XINPUT=ON -DSDL_WAYLAND=ON -DSDL_OPENGLES=ON)
|
||||
|
@ -929,10 +1018,11 @@ if(BUNDLED_MINIZIP AND (BUILD_CLIENT OR BUILD_SERVER))
|
|||
add_library(bundled_minizip STATIC ${MINIZIP_LIB_SRC} ${MINIZIP_LIB_HEADERS})
|
||||
target_include_directories(bundled_minizip PUBLIC "${CMAKE_CURRENT_LIST_DIR}/minizip")
|
||||
|
||||
if(APPLE)
|
||||
if(APPLE OR ANDROID)
|
||||
# The ioapi requires this since OSX already uses 64 fileapi (there is no fseek64 etc)
|
||||
# the same for Android and most BSD's
|
||||
target_compile_definitions(bundled_minizip PUBLIC USE_FILE32API)
|
||||
endif(APPLE)
|
||||
endif()
|
||||
|
||||
if(BUNDLED_ZLIB)
|
||||
target_link_libraries(bundled_minizip bundled_zlib)
|
||||
|
@ -989,17 +1079,17 @@ if(BUNDLED_JPEG AND BUILD_CLIENT)
|
|||
configure_file(${JPEG_LIB}/jconfigint.h.cmake ${JPEG_LIB}/jconfigint.h)
|
||||
|
||||
etl_find_lib_path(JPEG_BUNDLED_LIBRARIES _JPEG_OUTPUT)
|
||||
etl_setup_cmake_args(bundled_jpeg_cmake_args
|
||||
-DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DREQUIRE_SIMD=OFF -DWITH_12BIT=OFF
|
||||
-DWITH_ARITH_DEC=ON -DWITH_ARITH_ENC=ON -DWITH_JAVA=OFF -DWITH_JPEG7=OFF -DWITH_JPEG8=ON
|
||||
-DWITH_MEM_SRCDST=ON -DWITH_SIMD=OFF -DWITH_TURBOJPEG=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(bundled_jpeg
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/jpegturbo
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/jpegturbo
|
||||
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
|
||||
-DWITH_ARITH_DEC=ON -DWITH_ARITH_ENC=ON -DWITH_JAVA=OFF -DWITH_JPEG7=OFF -DWITH_JPEG8=ON
|
||||
-DWITH_MEM_SRCDST=ON -DWITH_SIMD=OFF -DWITH_TURBOJPEG=ON
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
CMAKE_ARGS ${bundled_jpeg_cmake_args}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
set_target_properties(bundled_jpeg PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
@ -1020,6 +1110,8 @@ if(BUNDLED_PNG AND BUILD_CLIENT)
|
|||
set(PNG_BUNDLED_LIBRARIES optimized "${binary_dir}/Release/libpng16_static${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${binary_dir}/Debug/libpng16_staticd${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
elseif(MSVC)
|
||||
set(PNG_BUNDLED_LIBRARIES optimized "${binary_dir}/libpng16_static${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${binary_dir}/libpng16_staticd${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
elseif(ANDROID)
|
||||
set(PNG_BUNDLED_LIBRARIES optimized "${binary_dir}/libpng16${CMAKE_STATIC_LIBRARY_SUFFIX}" debug "${binary_dir}/libpng16d${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
else()
|
||||
set(PNG_BUNDLED_LIBRARIES "${binary_dir}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
endif()
|
||||
|
@ -1036,17 +1128,17 @@ if(BUNDLED_PNG AND BUILD_CLIENT)
|
|||
endif()
|
||||
|
||||
etl_find_lib_path(PNG_BUNDLED_LIBRARIES _PNG_OUTPUT)
|
||||
etl_setup_cmake_args(bundled_png_cmake_args
|
||||
-DPNG_SHARED=OFF -DPNG_STATIC=ON -DPNG_BUILD_ZLIB=ON -DZLIB_INCLUDE_DIRS=${ZLIB_INCLUDE_DIR}
|
||||
-DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -DPNG_DEBUG=OFF -DPNG_HARDWARE_OPTIMIZATIONS=${PNG_OPTIMIZATION} -DAWK=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(bundled_png
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/libpng
|
||||
BINARY_DIR ${LIBS_BINARY_DIR}/libpng
|
||||
BUILD_BYPRODUCTS ${_PNG_OUTPUT}
|
||||
PREFIX ${LIBS_BINARY_DIR}/libpng
|
||||
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_DIRS=${ZLIB_INCLUDE_DIR}
|
||||
-DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -DPNG_DEBUG=OFF -DPNG_HARDWARE_OPTIMIZATIONS=${PNG_OPTIMIZATION} -DAWK=OFF
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET="${CMAKE_OSX_DEPLOYMENT_TARGET}" -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
CMAKE_ARGS ${bundled_png_cmake_args}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
set_target_properties(bundled_png PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
@ -1072,18 +1164,17 @@ if(BUNDLED_FREETYPE AND BUILD_CLIENT)
|
|||
endif()
|
||||
|
||||
etl_find_lib_path(BUNDLED_FREETYPE_LIBRARIES _FREETYPE_OUTPUT)
|
||||
etl_find_lib_path(BUNDLED_FREETYPE_CMAKE_ARGS
|
||||
DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=ON -DCMAKE_DISABLE_FIND_PACKAGE_PNG=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=ON -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=ON
|
||||
-DFT_WITH_ZLIB=OFF -DFT_WITH_BZIP2=OFF -DFT_WITH_PNG=OFF -DFT_WITH_HARFBUZZ=OFF -DFT_WITH_BROTLI=OFF -DDISABLE_FORCE_DEBUG_POSTFIX=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(bundled_freetype
|
||||
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/freetype
|
||||
BINARY_DIR ${binary_dir}
|
||||
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}"
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=ON -DCMAKE_DISABLE_FIND_PACKAGE_PNG=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=ON -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=ON
|
||||
-DFT_WITH_ZLIB=OFF -DFT_WITH_BZIP2=OFF -DFT_WITH_PNG=OFF -DFT_WITH_HARFBUZZ=OFF -DFT_WITH_BROTLI=OFF -DDISABLE_FORCE_DEBUG_POSTFIX=ON
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_}
|
||||
CMAKE_ARGS ${BUNDLED_FREETYPE_CMAKE_ARGS}
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
set_target_properties(bundled_freetype PROPERTIES FOLDER ${BUNDLED_TARGETS_FOLDER})
|
||||
|
|
Loading…
Reference in a new issue