mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
410 lines
17 KiB
CMake
410 lines
17 KiB
CMake
# Ask CMake to perform builds in a temporary directory for all of these.
|
|
# We also use EXCLUDE_FROM_ALL to ensure we only build and install what we want
|
|
#ZLIB
|
|
get_filename_component(ZLIB_ROOT "zlib" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
set(ZLIB_ROOT "${ZLIB_ROOT}" CACHE STRING "ZLib root location" FORCE)
|
|
advanced_option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" OFF)
|
|
mark_as_advanced(ZLIB_ROOT)
|
|
# Png depends on zlib
|
|
add_subdirectory(zlib ${TORQUE_LIB_TARG_DIRECTORY}/zlib EXCLUDE_FROM_ALL)
|
|
|
|
if(APPLE)
|
|
enable_language(OBJC)
|
|
advanced_option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" OFF)
|
|
else()
|
|
advanced_option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" ON)
|
|
endif()
|
|
|
|
if(AL_ALEXT_PROTOTYPES)
|
|
addDef( "AL_ALEXT_PROTOTYPES" )
|
|
endif()
|
|
|
|
#SDL
|
|
set(SDL_SHARED ON CACHE BOOL "Build a shared version of the library" FORCE)
|
|
set(SDL_STATIC OFF CACHE BOOL "Build a static version of the library" FORCE)
|
|
mark_as_advanced(SDL2MAIN_LIBRARY)
|
|
mark_as_advanced(SDL2_CORE_LIBRARY)
|
|
mark_as_advanced(SDL2_INCLUDE_DIR)
|
|
mark_as_advanced(SDL2_DISABLE_INSTALL)
|
|
mark_as_advanced(SDL2_DISABLE_SDL2MAIN)
|
|
mark_as_advanced(SDL2_DISABLE_UNINSTALL)
|
|
mark_as_advanced(SDL_3DNOW)
|
|
mark_as_advanced(SDL_ALSA)
|
|
mark_as_advanced(SDL_ALTIVEC)
|
|
mark_as_advanced(SDL_ARMNEON)
|
|
mark_as_advanced(SDL_ARMSIMD)
|
|
mark_as_advanced(SDL_ARTS)
|
|
mark_as_advanced(SDL_ASAN)
|
|
mark_as_advanced(SDL_ASSEMBLY)
|
|
mark_as_advanced(SDL_ASSERTIONS)
|
|
mark_as_advanced(SDL_ATOMIC)
|
|
mark_as_advanced(SDL_AUDIO)
|
|
mark_as_advanced(SDL_BACKGROUNDING_SIGNAL)
|
|
mark_as_advanced(SDL_CCACHE)
|
|
mark_as_advanced(SDL_CLOCK_GETTIME)
|
|
mark_as_advanced(SDL_COCOA)
|
|
mark_as_advanced(SDL_CPUINFO)
|
|
mark_as_advanced(SDL_DIRECTFB)
|
|
mark_as_advanced(SDL_DIRECTX)
|
|
mark_as_advanced(SDL_DISKAUDIO)
|
|
mark_as_advanced(SDL_DUMMYAUDIO)
|
|
mark_as_advanced(SDL_DUMMYVIDEO)
|
|
mark_as_advanced(SDL_ESD)
|
|
mark_as_advanced(SDL_EVENTS)
|
|
mark_as_advanced(SDL_FILE)
|
|
mark_as_advanced(SDL_FILESYSTEM)
|
|
mark_as_advanced(SDL_FORCE_STATIC_VCRT)
|
|
mark_as_advanced(SDL_FOREGROUNDING_SIGNAL)
|
|
mark_as_advanced(SDL_FUSIONSOUND)
|
|
mark_as_advanced(SDL_GCC_ATOMICS)
|
|
mark_as_advanced(SDL_HAPTIC)
|
|
mark_as_advanced(SDL_HIDAPI)
|
|
mark_as_advanced(SDL_HIDAPI_JOYSTICK)
|
|
mark_as_advanced(SDL_HIDAPI_LIBUSB)
|
|
mark_as_advanced(SDL_INSTALL_TESTS)
|
|
mark_as_advanced(SDL_JACK)
|
|
mark_as_advanced(SDL_JOYSTICK)
|
|
mark_as_advanced(SDL_KMSDRM)
|
|
mark_as_advanced(SDL_LIBC)
|
|
mark_as_advanced(SDL_LIBSAMPLERATE)
|
|
mark_as_advanced(SDL_LIBUDEV)
|
|
mark_as_advanced(SDL_LOADSO)
|
|
mark_as_advanced(SDL_LOCALE)
|
|
mark_as_advanced(SDL_METAL)
|
|
mark_as_advanced(SDL_MISC)
|
|
mark_as_advanced(SDL_MMX)
|
|
mark_as_advanced(SDL_NAS)
|
|
mark_as_advanced(SDL_OFFSCREEN)
|
|
mark_as_advanced(SDL_OPENGL)
|
|
mark_as_advanced(SDL_OPENGLES)
|
|
mark_as_advanced(SDL_PIPEWIRE)
|
|
mark_as_advanced(SDL_POWER)
|
|
mark_as_advanced(SDL_PTHREADS)
|
|
mark_as_advanced(SDL_PULSEAUDIO)
|
|
mark_as_advanced(SDL_RENDER)
|
|
mark_as_advanced(SDL_RENDER_D3D)
|
|
mark_as_advanced(SDL_RENDER_METAL)
|
|
mark_as_advanced(SDL_RPATH)
|
|
mark_as_advanced(SDL_RPI)
|
|
mark_as_advanced(SDL_SENSOR)
|
|
mark_as_advanced(SDL_SHARED)
|
|
mark_as_advanced(SDL_SNDIO)
|
|
mark_as_advanced(SDL_SSE)
|
|
mark_as_advanced(SDL_SSE2)
|
|
mark_as_advanced(SDL_SSE3)
|
|
mark_as_advanced(SDL_SSEMATH)
|
|
mark_as_advanced(SDL_STATIC)
|
|
mark_as_advanced(SDL_SYSTEM_ICONV)
|
|
mark_as_advanced(SDL_TEST)
|
|
mark_as_advanced(SDL_TESTS)
|
|
mark_as_advanced(SDL_THREADS)
|
|
mark_as_advanced(SDL_TIMERS)
|
|
mark_as_advanced(SDL_VENDOR_INFO)
|
|
mark_as_advanced(SDL_VIDEO)
|
|
mark_as_advanced(SDL_VIRTUAL_JOYSTICK)
|
|
mark_as_advanced(SDL_VIVANTE)
|
|
mark_as_advanced(SDL_VULKAN)
|
|
mark_as_advanced(SDL_WASAPI)
|
|
mark_as_advanced(SDL_WAYLAND)
|
|
mark_as_advanced(SDL_WERROR)
|
|
mark_as_advanced(SDL_X11)
|
|
mark_as_advanced(SDL_XINPUT)
|
|
mark_as_advanced(SDL2_DIR)
|
|
add_subdirectory(sdl ${TORQUE_LIB_TARG_DIRECTORY}/sdl2 EXCLUDE_FROM_ALL)
|
|
|
|
add_subdirectory(nativeFileDialogs ${TORQUE_LIB_TARG_DIRECTORY}/nfd EXCLUDE_FROM_ALL)
|
|
add_subdirectory(convexMath ${TORQUE_LIB_TARG_DIRECTORY}/convexMath EXCLUDE_FROM_ALL)
|
|
|
|
# Assimp
|
|
advanced_option(ASSIMP_HUNTER_ENABLED "Enable Hunter package manager support" OFF)
|
|
advanced_option(ASSIMP_BUILD_NO_OWN_ZLIB "" ON)
|
|
set(BUILD_SHARED_LIBS OFF )
|
|
advanced_option(ASSIMP_BUILD_FRAMEWORK "Build package as Mac OS X Framework bundle." OFF )
|
|
advanced_option(ASSIMP_DOUBLE_PRECISION "Set to ON to enable double precision processing" OFF )
|
|
advanced_option(ASSIMP_OPT_BUILD_PACKAGES "Set to ON to generate CPack configuration files and packaging targets" OFF )
|
|
advanced_option(ASSIMP_ANDROID_JNIIOSYSTEM "Android JNI IOSystem support is active" OFF )
|
|
advanced_option(ASSIMP_NO_EXPORT "Disable Assimp's export functionality." OFF )
|
|
advanced_option(ASSIMP_BUILD_ASSIMP_TOOLS "If the supplementary tools for Assimp are built in addition to the library." OFF )
|
|
advanced_option(ASSIMP_BUILD_SAMPLES "If the official samples are built as well (needs Glut)." OFF )
|
|
advanced_option(ASSIMP_BUILD_TESTS "If the test suite for Assimp is built in addition to the library." OFF )
|
|
advanced_option(ASSIMP_COVERALLS "Enable this to measure test coverage." OFF )
|
|
advanced_option(ASSIMP_INSTALL "Disable this if you want to use assimp as a submodule." OFF )
|
|
advanced_option(ASSIMP_WARNINGS_AS_ERRORS "Treat all warnings as errors." OFF )
|
|
advanced_option(ASSIMP_ASAN "Enable AddressSanitizer." OFF )
|
|
advanced_option(ASSIMP_UBSAN "Enable Undefined Behavior sanitizer." OFF )
|
|
advanced_option(ASSIMP_BUILD_DOCS "Build documentation using Doxygen." OFF )
|
|
advanced_option(ASSIMP_INJECT_DEBUG_POSTFIX "Inject debug postfix in .a/.so/.dll lib names" ON )
|
|
advanced_option(ASSIMP_IGNORE_GIT_HASH "Don't call git to get the hash." ON )
|
|
advanced_option(ASSIMP_BUILD_ZLIB "Build your own zlib" OFF )
|
|
advanced_option(ASSIMP_ANDROID_JNIIOSYSTEM "Android JNI IOSystem support is active" ON)
|
|
advanced_option(ASSIMP_BUILD_DRACO "If the Draco libraries are to be built. Primarily for glTF" OFF )
|
|
advanced_option(ASSIMP_BUILD_NONFREE_C4D_IMPORTER "Build the C4D importer, which relies on the non-free Cineware SDK." OFF)
|
|
IF(MSVC)
|
|
advanced_option( ASSIMP_INSTALL_PDB "Install MSVC debug files." ON )
|
|
endif()
|
|
advanced_option(ASSIMP_RAPIDJSON_NO_MEMBER_ITERATOR "Suppress rapidjson warning on MSVC (NOTE: breaks android build)" ON )
|
|
advanced_option(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER values" ON)
|
|
advanced_option(ASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_EXPORTER values" ON)
|
|
mark_as_advanced(ASSIMP_ARCHIVE_OUTPUT_DIRECTORY)
|
|
mark_as_advanced(ASSIMP_BIN_INSTALL_DIR)
|
|
mark_as_advanced(ASSIMP_LIB_INSTALL_DIR)
|
|
mark_as_advanced(ASSIMP_INCLUDE_INSTALL_DIR)
|
|
mark_as_advanced(ASSIMP_LIBRARY_OUTPUT_DIRECTORY)
|
|
mark_as_advanced(ASSIMP_LIBRARY_SUFFIX)
|
|
mark_as_advanced(ASSIMP_PACKAGE_VERSION)
|
|
mark_as_advanced(ASSIMP_RUNTIME_OUTPUT_DIRECTORY)
|
|
add_subdirectory(assimp ${TORQUE_LIB_TARG_DIRECTORY}/assimp EXCLUDE_FROM_ALL)
|
|
target_compile_definitions(assimp PUBLIC ASSIMP_BUILD_NO_OWN_ZLIB)
|
|
|
|
if (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
|
|
if(NOT APPLE)
|
|
set(PNG_ARM_NEON on CACHE BOOL "" FORCE)
|
|
endif(NOT APPLE)
|
|
endif (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
|
|
|
|
if(APPLE)
|
|
set(PNG_ARM_NEON off CACHE BOOL "" FORCE)
|
|
endif()
|
|
|
|
#PNG STB Update: Not sure if these are still needed.
|
|
set(PNG_STATIC on CACHE BOOL "" FORCE)
|
|
mark_as_advanced(PNG_STATIC)
|
|
set(PNG_SHARED off CACHE BOOL "" FORCE)
|
|
mark_as_advanced(PNG_SHARED)
|
|
set(PNG_BUILD_ZLIB on CACHE BOOL "" FORCE)
|
|
mark_as_advanced(PNG_BUILD_ZLIB)
|
|
set(PNG_TESTS off CACHE BOOL "" FORCE)
|
|
mark_as_advanced(PNG_TESTS)
|
|
set(PNG_HARDWARE_OPTIMIZATIONS on CACHE BOOL "" FORCE)
|
|
mark_as_advanced(PNG_HARDWARE_OPTIMIZATIONS)
|
|
|
|
if(APPLE)
|
|
set(PNG_FRAMEWORK on CACHE BOOL "" FORCE)
|
|
addDef(PNG_DEBUG Debug)
|
|
endif()
|
|
|
|
mark_as_advanced(PNG_DEBUG)
|
|
mark_as_advanced(PNG_FRAMEWORK)
|
|
mark_as_advanced(PNG_PREFIX)
|
|
|
|
add_subdirectory(tinyxml2 ${TORQUE_LIB_TARG_DIRECTORY}/tinyxml2 EXCLUDE_FROM_ALL)
|
|
add_subdirectory(opcode ${TORQUE_LIB_TARG_DIRECTORY}/opcode EXCLUDE_FROM_ALL)
|
|
add_subdirectory(pcre ${TORQUE_LIB_TARG_DIRECTORY}/pcre EXCLUDE_FROM_ALL)
|
|
|
|
add_subdirectory(squish ${TORQUE_LIB_TARG_DIRECTORY}/squish EXCLUDE_FROM_ALL)
|
|
add_subdirectory(collada ${TORQUE_LIB_TARG_DIRECTORY}/collada EXCLUDE_FROM_ALL)
|
|
add_subdirectory(glad ${TORQUE_LIB_TARG_DIRECTORY}/glad EXCLUDE_FROM_ALL)
|
|
|
|
#hidden options
|
|
if(TORQUE_SFX_OPENAL)
|
|
advanced_option(TORQUE_OGGVORBIS "Enable OGG Vorbis" ON)
|
|
advanced_option(ALSOFT_EAX "Enable legacy EAX extensions" ${WIN32})
|
|
advanced_option(ALSOFT_UPDATE_BUILD_VERSION "Update git build version info" ON)
|
|
mark_as_advanced(ALSOFT_BACKEND_COREAUDIO)
|
|
advanced_option(ALSOFT_BACKEND_DSOUND "Enable DirectSound backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_JACK "Enable Jack backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_OBOE "Enable OBOE backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_PIPEWIRE "Enable PipeWire backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_PORTAUDIO "Enable PortAudio backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_PULSEAUDIO "Enable PulseAudio backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_SDL2 "Use SDL2 Backend" ON)
|
|
advanced_option(ALSOFT_BACKEND_WASAPI "Enable WASAPI backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_WAVE "Enable Wave backend" OFF)
|
|
advanced_option(ALSOFT_BACKEND_WINMM "Enable WinMM backend" OFF)
|
|
mark_as_advanced(ALSOFT_BUILD_ROUTER)
|
|
mark_as_advanced(ALSOFT_CPUEXT_NEON)
|
|
mark_as_advanced(ALSOFT_CPUEXT_SSE)
|
|
mark_as_advanced(ALSOFT_CPUEXT_SSE2)
|
|
mark_as_advanced(ALSOFT_CPUEXT_SSE3)
|
|
mark_as_advanced(ALSOFT_CPUEXT_SSE4_1)
|
|
mark_as_advanced(ALSOFT_DLOPEN)
|
|
mark_as_advanced(ALSOFT_EAX)
|
|
advanced_option(ALSOFT_EMBED_HRTF_DATA "Embed the HRTF data files (increases library footprint)" OFF)
|
|
advanced_option(ALSOFT_EXAMPLES "Build example programs" OFF)
|
|
advanced_option(ALSOFT_INSTALL "Install OpenAL" OFF) # we move it ourselves
|
|
advanced_option(ALSOFT_INSTALL_CONFIG "Install alsoft.conf sample configuration file" OFF)
|
|
advanced_option(ALSOFT_INSTALL_HRTF_DATA "Install HRTF data files" OFF)
|
|
advanced_option(ALSOFT_INSTALL_AMBDEC_PRESETS "Install AmbDec preset files" OFF)
|
|
advanced_option(ALSOFT_INSTALL_EXAMPLES "Install example programs (alplay, alstream, ...)" OFF)
|
|
advanced_option(ALSOFT_INSTALL_UTILS "Install utility programs (openal-info, alsoft-config, ...)" OFF)
|
|
mark_as_advanced(ALSOFT_UPDATE_BUILD_VERSION)
|
|
mark_as_advanced(ALSOFT_NO_CONFIG_UTIL)
|
|
mark_as_advanced(ALSOFT_REQUIRE_COREAUDIO)
|
|
mark_as_advanced(ALSOFT_REQUIRE_DSOUND)
|
|
mark_as_advanced(ALSOFT_REQUIRE_JACK)
|
|
mark_as_advanced(ALSOFT_REQUIRE_NEON)
|
|
mark_as_advanced(ALSOFT_REQUIRE_OBOE)
|
|
mark_as_advanced(ALSOFT_REQUIRE_OPENSL)
|
|
mark_as_advanced(ALSOFT_REQUIRE_PIPEWIRE)
|
|
mark_as_advanced(ALSOFT_REQUIRE_PORTAUDIO)
|
|
mark_as_advanced(ALSOFT_REQUIRE_PULSEAUDIO)
|
|
mark_as_advanced(ALSOFT_REQUIRE_SDL2)
|
|
mark_as_advanced(ALSOFT_REQUIRE_SSE)
|
|
mark_as_advanced(ALSOFT_REQUIRE_SSE2)
|
|
mark_as_advanced(ALSOFT_REQUIRE_SSE3)
|
|
mark_as_advanced(ALSOFT_REQUIRE_SSE4_1)
|
|
mark_as_advanced(ALSOFT_REQUIRE_WASAPI)
|
|
mark_as_advanced(ALSOFT_REQUIRE_WINMM)
|
|
mark_as_advanced(ALSOFT_SEARCH_INSTALL_DATADIR)
|
|
mark_as_advanced(ALSOFT_TESTS)
|
|
mark_as_advanced(ALSOFT_UTILS)
|
|
mark_as_advanced(ALSOFT_WERROR)
|
|
endif()
|
|
|
|
advanced_option(INSTALL_DOCS "" OFF)
|
|
advanced_option(INSTALL_PKG_CONFIG_MODULE "" OFF)
|
|
advanced_option(INSTALL_CMAKE_PACKAGE_MODULE "" OFF)
|
|
advanced_option(BUILD_TESTING "" OFF)
|
|
add_subdirectory(libogg ${TORQUE_LIB_TARG_DIRECTORY}/libogg )
|
|
add_subdirectory(libvorbis ${TORQUE_LIB_TARG_DIRECTORY}/libvorbis EXCLUDE_FROM_ALL)
|
|
|
|
advanced_option(INSTALL_PKGCONFIG_MODULES "" OFF)
|
|
advanced_option(INSTALL_CMAKE_CONFIG_MODULE "" OFF)
|
|
add_subdirectory(flac ${TORQUE_LIB_TARG_DIRECTORY}/flac EXCLUDE_FROM_ALL)
|
|
|
|
advanced_option(INSTALL_DOCS "" OFF)
|
|
advanced_option(OPUS_INSTALL_PKG_CONFIG_MODULE "" OFF)
|
|
advanced_option(OPUS_INSTALL_CMAKE_CONFIG_MODULE "" OFF)
|
|
mark_as_advanced(OPUS_ASSERTIONS)
|
|
mark_as_advanced(OPUS_BUILD_PROGRAMS)
|
|
mark_as_advanced(OPUS_BUILD_SHARED_LIBRARY)
|
|
mark_as_advanced(OPUS_BUILD_TESTING)
|
|
mark_as_advanced(OPUS_CHECK_ASM)
|
|
mark_as_advanced(OPUS_CUSTOM_MODES)
|
|
mark_as_advanced(OPUS_DISABLE_INTRINSICS)
|
|
mark_as_advanced(OPUS_ENABLE_FLOAT_API)
|
|
mark_as_advanced(OPUS_FIXED_POINT)
|
|
mark_as_advanced(OPUS_FLOAT_APPROX)
|
|
mark_as_advanced(OPUS_FUZZING)
|
|
mark_as_advanced(OPUS_HARDENING)
|
|
mark_as_advanced(OPUS_STACK_PROTECTOR)
|
|
mark_as_advanced(OPUS_USE_ALLOCA)
|
|
mark_as_advanced(OPUS_X86_MAY_HAVE_AVX)
|
|
mark_as_advanced(OPUS_X86_MAY_HAVE_SSE)
|
|
mark_as_advanced(OPUS_X86_MAY_HAVE_SSE2)
|
|
mark_as_advanced(OPUS_X86_MAY_HAVE_SSE4_1)
|
|
mark_as_advanced(OPUS_X86_PRESUME_AVX)
|
|
mark_as_advanced(OPUS_X86_PRESUME_SSE)
|
|
mark_as_advanced(OPUS_X86_PRESUME_SSE2)
|
|
mark_as_advanced(OPUS_X86_PRESUME_SSE4_1)
|
|
add_subdirectory(opus ${TORQUE_LIB_TARG_DIRECTORY}/opus EXCLUDE_FROM_ALL)
|
|
add_subdirectory(libtheora ${TORQUE_LIB_TARG_DIRECTORY}/libtheora EXCLUDE_FROM_ALL)
|
|
|
|
mark_as_advanced(PULSEAUDIO_INCLUDE_DIR)
|
|
mark_as_advanced(PULSEAUDIO_LIBRARY)
|
|
|
|
# Setup python
|
|
find_package(Python3 QUIET)
|
|
|
|
if(NOT Python3_FOUND)
|
|
if(WIN32)
|
|
message(STATUS "Python3 not found — downloading embedded Python...")
|
|
set(program_version 3.12.7)
|
|
# Detect architecture
|
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
|
if(TORQUE_CPU_ARM64)
|
|
set(download_url "https://www.python.org/ftp/python/${program_version}/python-${program_version}-embed-arm64.zip")
|
|
set(download_filename "python-${program_version}-embed-arm64.zip")
|
|
set(download_sha512 D1D1183682D20AC057C45BF2AD264B6568CDEB54A1502823C76A2448386CAEF79A3AB9EA8FF57A5C023D432590FCCB5E3E9980F8760CD9BAAC5A2A82BA240D73)
|
|
endif()
|
|
else()
|
|
if(TORQUE_CPU_X64)
|
|
set(download_url "https://www.python.org/ftp/python/${program_version}/python-${program_version}-embed-amd64.zip")
|
|
set(download_filename "python-${program_version}-embed-amd64.zip")
|
|
set(download_sha512 2F67A8487A9EDECE26B73AAB27E75249E538938AD976D371A9411B54DBAE20AFEAC82B406AD4EEEE38B1CF6F407E7620679D30C0FFF82EC8E8AE62268C322D59)
|
|
endif()
|
|
endif()
|
|
if(TORQUE_CPU_X32 OR TORQUE_CPU_ARM32)
|
|
set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}-embed-win32.zip")
|
|
set(download_filename "python-${program_version}-embed-win32.zip")
|
|
set(download_sha512 15542080E0CC25C574391218107FE843006E8C5A7161D1CD48CF14A3C47155C0244587273D9C747F35B15EA17676869ECCE079214824214C1A62ABFC86AD9F9B)
|
|
endif()
|
|
|
|
if(NOT download_url)
|
|
message(FATAL_ERROR "Unsupported architecture or missing TORQUE_CPU_* definition.")
|
|
endif()
|
|
|
|
set(python_dir "${CMAKE_BINARY_DIR}/tools/python")
|
|
set(python_zip "${python_dir}/${download_filename}")
|
|
|
|
# Ensure the target directory exists
|
|
file(MAKE_DIRECTORY "${python_dir}")
|
|
|
|
# Download the Python embedded zip if not already there
|
|
if(NOT EXISTS "${python_zip}")
|
|
message(STATUS "Downloading ${download_url} ...")
|
|
file(DOWNLOAD
|
|
"${download_url}"
|
|
"${python_zip}"
|
|
SHOW_PROGRESS
|
|
EXPECTED_HASH SHA512=${download_sha512}
|
|
STATUS download_status
|
|
)
|
|
list(GET download_status 0 status_code)
|
|
if(NOT status_code EQUAL 0)
|
|
message(FATAL_ERROR "Download failed: ${download_status}")
|
|
endif()
|
|
endif()
|
|
|
|
# Extract the embedded Python ZIP
|
|
message(STATUS "Extracting Python to ${python_dir}")
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E tar xzf "${python_zip}"
|
|
WORKING_DIRECTORY "${python_dir}"
|
|
RESULT_VARIABLE extract_result
|
|
)
|
|
|
|
if(NOT extract_result EQUAL 0)
|
|
message(FATAL_ERROR "Failed to extract ${python_zip}")
|
|
endif()
|
|
|
|
file(GLOB embedded_python_exe "${python_dir}/python*.exe")
|
|
if(embedded_python_exe)
|
|
set(Python_EXECUTABLE "${embedded_python_exe}" CACHE FILEPATH "Path to embedded Python" FORCE)
|
|
message(STATUS "Using embedded Python: ${Python_EXECUTABLE}")
|
|
endif()
|
|
else()
|
|
message(FATAL_ERROR "Cannot find python3 please install it")
|
|
endif(WIN32)
|
|
endif()
|
|
|
|
advanced_option(BUILD_PROGRAMS "" OFF)
|
|
advanced_option(BUILD_EXAMPLES "" OFF)
|
|
advanced_option(BUILD_TESTING "" OFF)
|
|
advanced_option(BUILD_REGTEST "" OFF)
|
|
advanced_option(ENABLE_BOW_DOCS "" OFF)
|
|
set(BUILD_SHARED_LIBS ON )
|
|
add_subdirectory(libsndfile ${TORQUE_LIB_TARG_DIRECTORY}/libsndfile EXCLUDE_FROM_ALL)
|
|
|
|
set(BUILD_SHARED_LIBS OFF )
|
|
if(TORQUE_TESTING)
|
|
add_subdirectory(gtest ${TORQUE_LIB_TARG_DIRECTORY}/gtest EXCLUDE_FROM_ALL)
|
|
endif()
|
|
#endif()
|
|
|
|
#misc randoms
|
|
mark_as_advanced(WINDRES)
|
|
mark_as_advanced(AUDIOUNIT_INCLUDE_DIR)
|
|
mark_as_advanced(CCACHE_BINARY)
|
|
mark_as_advanced(COREAUDIO_FRAMEWORK)
|
|
mark_as_advanced(FORCE_STATIC_VCRT)
|
|
mark_as_advanced(HAVE_GIT)
|
|
mark_as_advanced(LIBRARY_SUFFIX)
|
|
mark_as_advanced(USE_STATIC_CRT)
|
|
|
|
mark_as_advanced(BUILD_CXXLIBS)
|
|
mark_as_advanced(BUILD_DOCS)
|
|
mark_as_advanced(BUILD_REGTEST)
|
|
mark_as_advanced(BUILD_UTILS)
|
|
|
|
mark_as_advanced(ENABLE_64_BIT_WORDS)
|
|
mark_as_advanced(ENABLE_BOW_DOCS)
|
|
mark_as_advanced(ENABLE_EXTERNAL_LIBS)
|
|
|
|
mark_as_advanced(WITH_ASM)
|
|
mark_as_advanced(WITH_AVX)
|
|
mark_as_advanced(WITH_FORTIFY_SOURCE)
|
|
mark_as_advanced(WITH_OGG)
|
|
mark_as_advanced(WITH_STACK_PROTECTOR)
|