|
|
|
|
@ -314,7 +314,215 @@ set_target_properties(libzip_external_lib PROPERTIES
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ===========================================
|
|
|
|
|
# 5) Eigen (5.0.0.zip → eigen-5.0.0) - HEADER-ONLY
|
|
|
|
|
# 5) FreeType (2.14.1) - dependency for SDL_ttf
|
|
|
|
|
# ===========================================
|
|
|
|
|
set(FREETYPE_SRC_DIR "${THIRDPARTY_DIR}/freetype-2.14.1")
|
|
|
|
|
set(FREETYPE_BASE_DIR "${FREETYPE_SRC_DIR}/install")
|
|
|
|
|
|
|
|
|
|
set(_have_freetype TRUE)
|
|
|
|
|
foreach(cfg IN LISTS BUILD_CONFIGS)
|
|
|
|
|
if(NOT EXISTS "${FREETYPE_BASE_DIR}-${cfg}/lib/freetype.lib" AND
|
|
|
|
|
NOT EXISTS "${FREETYPE_BASE_DIR}-${cfg}/lib/freetyped.lib")
|
|
|
|
|
set(_have_freetype FALSE)
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
if(NOT _have_freetype)
|
|
|
|
|
foreach(cfg IN LISTS BUILD_CONFIGS)
|
|
|
|
|
log("Configuring FreeType (${cfg}) ...")
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
|
-G "${CMAKE_GENERATOR}"
|
|
|
|
|
-S "${FREETYPE_SRC_DIR}"
|
|
|
|
|
-B "${FREETYPE_SRC_DIR}/build-${cfg}"
|
|
|
|
|
-DCMAKE_INSTALL_PREFIX=${FREETYPE_BASE_DIR}-${cfg}
|
|
|
|
|
-DCMAKE_PREFIX_PATH="${ZLIB_INSTALL_DIR};${LIBPNG_INSTALL_DIR}"
|
|
|
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
|
|
|
|
|
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE
|
|
|
|
|
-DFT_DISABLE_BROTLI=ON
|
|
|
|
|
-DBUILD_SHARED_LIBS=OFF
|
|
|
|
|
RESULT_VARIABLE _ft_cfg_res
|
|
|
|
|
)
|
|
|
|
|
if(NOT _ft_cfg_res EQUAL 0)
|
|
|
|
|
message(FATAL_ERROR "FreeType configure failed for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
log("Building FreeType (${cfg}) ...")
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
|
--build "${FREETYPE_SRC_DIR}/build-${cfg}" --config ${cfg}
|
|
|
|
|
RESULT_VARIABLE _ft_build_res
|
|
|
|
|
)
|
|
|
|
|
if(NOT _ft_build_res EQUAL 0)
|
|
|
|
|
message(FATAL_ERROR "FreeType build failed for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
log("Installing FreeType (${cfg}) ...")
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
|
--install "${FREETYPE_SRC_DIR}/build-${cfg}" --config ${cfg}
|
|
|
|
|
RESULT_VARIABLE _ft_inst_res
|
|
|
|
|
)
|
|
|
|
|
if(NOT _ft_inst_res EQUAL 0)
|
|
|
|
|
message(FATAL_ERROR "FreeType install failed for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(_ft_debug_lib "")
|
|
|
|
|
foreach(cand
|
|
|
|
|
"${FREETYPE_BASE_DIR}-Debug/lib/freetyped.lib"
|
|
|
|
|
"${FREETYPE_BASE_DIR}-Debug/lib/freetype.lib"
|
|
|
|
|
)
|
|
|
|
|
if(EXISTS "${cand}")
|
|
|
|
|
set(_ft_debug_lib "${cand}")
|
|
|
|
|
break()
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
set(_ft_release_lib "")
|
|
|
|
|
foreach(cand
|
|
|
|
|
"${FREETYPE_BASE_DIR}-Release/lib/freetype.lib"
|
|
|
|
|
)
|
|
|
|
|
if(EXISTS "${cand}")
|
|
|
|
|
set(_ft_release_lib "${cand}")
|
|
|
|
|
break()
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
if(_ft_debug_lib STREQUAL "" OR _ft_release_lib STREQUAL "")
|
|
|
|
|
message(FATAL_ERROR "FreeType libs not found in ${FREETYPE_BASE_DIR}-Debug/Release")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
add_library(freetype_external_lib UNKNOWN IMPORTED GLOBAL)
|
|
|
|
|
set_target_properties(freetype_external_lib PROPERTIES
|
|
|
|
|
IMPORTED_LOCATION_DEBUG "${_ft_debug_lib}"
|
|
|
|
|
IMPORTED_LOCATION_RELEASE "${_ft_release_lib}"
|
|
|
|
|
INTERFACE_INCLUDE_DIRECTORIES
|
|
|
|
|
"$<IF:$<CONFIG:Debug>,${FREETYPE_BASE_DIR}-Debug/include,${FREETYPE_BASE_DIR}-Release/include>"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ===========================================
|
|
|
|
|
# 6) SDL_ttf (2.24.0)
|
|
|
|
|
# ===========================================
|
|
|
|
|
set(SDL2TTF_SRC_DIR "${THIRDPARTY_DIR}/SDL_ttf-release-2.24.0")
|
|
|
|
|
set(SDL2TTF_BASE_DIR "${SDL2TTF_SRC_DIR}/install")
|
|
|
|
|
|
|
|
|
|
set(_have_sdl2ttf TRUE)
|
|
|
|
|
foreach(cfg IN LISTS BUILD_CONFIGS)
|
|
|
|
|
if(NOT EXISTS "${SDL2TTF_BASE_DIR}-${cfg}/lib/SDL2_ttf.lib" AND
|
|
|
|
|
NOT EXISTS "${SDL2TTF_BASE_DIR}-${cfg}/lib/SDL2_ttfd.lib")
|
|
|
|
|
set(_have_sdl2ttf FALSE)
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
if(NOT _have_sdl2ttf)
|
|
|
|
|
foreach(cfg IN LISTS BUILD_CONFIGS)
|
|
|
|
|
|
|
|
|
|
if(cfg STREQUAL "Debug")
|
|
|
|
|
set(_SDL2_LIB "${SDL2_INSTALL_DIR}/lib/SDL2d.lib")
|
|
|
|
|
else()
|
|
|
|
|
set(_SDL2_LIB "${SDL2_INSTALL_DIR}/lib/SDL2.lib")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(_FT_PREFIX "${FREETYPE_BASE_DIR}-${cfg}")
|
|
|
|
|
|
|
|
|
|
set(_FT_LIB "")
|
|
|
|
|
foreach(cand
|
|
|
|
|
"${_FT_PREFIX}/lib/freetyped.lib"
|
|
|
|
|
"${_FT_PREFIX}/lib/freetype.lib"
|
|
|
|
|
)
|
|
|
|
|
if(EXISTS "${cand}")
|
|
|
|
|
set(_FT_LIB "${cand}")
|
|
|
|
|
break()
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
if(_FT_LIB STREQUAL "")
|
|
|
|
|
message(FATAL_ERROR "FreeType library not found for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
log("Configuring SDL_ttf (${cfg}) ...")
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
|
-G "${CMAKE_GENERATOR}"
|
|
|
|
|
-S "${SDL2TTF_SRC_DIR}"
|
|
|
|
|
-B "${SDL2TTF_SRC_DIR}/build-${cfg}"
|
|
|
|
|
-DCMAKE_INSTALL_PREFIX=${SDL2TTF_BASE_DIR}-${cfg}
|
|
|
|
|
-DCMAKE_PREFIX_PATH=${_FT_PREFIX};${SDL2_INSTALL_DIR}
|
|
|
|
|
-DSDL2_LIBRARY=${_SDL2_LIB}
|
|
|
|
|
-DSDL2_INCLUDE_DIR=${SDL2_INSTALL_DIR}/include/SDL2
|
|
|
|
|
-DFREETYPE_LIBRARY=${_FT_LIB}
|
|
|
|
|
-DFREETYPE_INCLUDE_DIR=${_FT_PREFIX}/include
|
|
|
|
|
-DFREETYPE_INCLUDE_DIRS=${_FT_PREFIX}/include
|
|
|
|
|
-DSDL2TTF_VENDORED=OFF
|
|
|
|
|
-DSDL2TTF_SAMPLES=OFF
|
|
|
|
|
RESULT_VARIABLE _ttf_cfg_res
|
|
|
|
|
)
|
|
|
|
|
if(NOT _ttf_cfg_res EQUAL 0)
|
|
|
|
|
message(FATAL_ERROR "SDL_ttf configure failed for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
log("Building SDL_ttf (${cfg}) ...")
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
|
--build "${SDL2TTF_SRC_DIR}/build-${cfg}" --config ${cfg}
|
|
|
|
|
RESULT_VARIABLE _ttf_build_res
|
|
|
|
|
)
|
|
|
|
|
if(NOT _ttf_build_res EQUAL 0)
|
|
|
|
|
message(FATAL_ERROR "SDL_ttf build failed for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
log("Installing SDL_ttf (${cfg}) ...")
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
|
--install "${SDL2TTF_SRC_DIR}/build-${cfg}" --config ${cfg}
|
|
|
|
|
RESULT_VARIABLE _ttf_inst_res
|
|
|
|
|
)
|
|
|
|
|
if(NOT _ttf_inst_res EQUAL 0)
|
|
|
|
|
message(FATAL_ERROR "SDL_ttf install failed for ${cfg}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
endforeach()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(_ttf_debug_lib "")
|
|
|
|
|
foreach(cand
|
|
|
|
|
"${SDL2TTF_BASE_DIR}-Debug/lib/SDL2_ttfd.lib"
|
|
|
|
|
"${SDL2TTF_BASE_DIR}-Debug/lib/SDL2_ttf.lib"
|
|
|
|
|
)
|
|
|
|
|
if(EXISTS "${cand}")
|
|
|
|
|
set(_ttf_debug_lib "${cand}")
|
|
|
|
|
break()
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
set(_ttf_release_lib "")
|
|
|
|
|
foreach(cand
|
|
|
|
|
"${SDL2TTF_BASE_DIR}-Release/lib/SDL2_ttf.lib"
|
|
|
|
|
)
|
|
|
|
|
if(EXISTS "${cand}")
|
|
|
|
|
set(_ttf_release_lib "${cand}")
|
|
|
|
|
break()
|
|
|
|
|
endif()
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
if(_ttf_debug_lib STREQUAL "" OR _ttf_release_lib STREQUAL "")
|
|
|
|
|
message(FATAL_ERROR "SDL_ttf libs not found in install-Debug / install-Release")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
add_library(SDL2_ttf_external_lib UNKNOWN IMPORTED GLOBAL)
|
|
|
|
|
set_target_properties(SDL2_ttf_external_lib PROPERTIES
|
|
|
|
|
IMPORTED_LOCATION_DEBUG "${_ttf_debug_lib}"
|
|
|
|
|
IMPORTED_LOCATION_RELEASE "${_ttf_release_lib}"
|
|
|
|
|
INTERFACE_INCLUDE_DIRECTORIES
|
|
|
|
|
"$<IF:$<CONFIG:Debug>,${SDL2TTF_BASE_DIR}-Debug/include,${SDL2TTF_BASE_DIR}-Release/include>;$<IF:$<CONFIG:Debug>,${SDL2TTF_BASE_DIR}-Debug/include/SDL2,${SDL2TTF_BASE_DIR}-Release/include/SDL2>"
|
|
|
|
|
INTERFACE_LINK_LIBRARIES
|
|
|
|
|
"SDL2_external_lib;freetype_external_lib"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ===========================================
|
|
|
|
|
# 7) Eigen (5.0.0.zip → eigen-5.0.0) - HEADER-ONLY
|
|
|
|
|
# ===========================================
|
|
|
|
|
set(EIGEN_SRC_DIR "${THIRDPARTY_DIR}/eigen-5.0.0")
|
|
|
|
|
|
|
|
|
|
@ -324,7 +532,7 @@ if(NOT TARGET eigen_external_lib)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# ===========================================
|
|
|
|
|
# 6) Boost (1.90.0) - HEADER-ONLY
|
|
|
|
|
# 8) Boost (1.90.0) - HEADER-ONLY
|
|
|
|
|
# ===========================================
|
|
|
|
|
set(BOOST_VERSION "1.90.0")
|
|
|
|
|
set(BOOST_ARCHIVE_NAME "boost_1_90_0.zip")
|
|
|
|
|
|