|
@@ -9,10 +9,8 @@ add_library(fmt.hdll
|
|
${MIKKTSPACE_INCLUDE_DIR}/mikktspace.c
|
|
${MIKKTSPACE_INCLUDE_DIR}/mikktspace.c
|
|
)
|
|
)
|
|
|
|
|
|
-if (WIN32 OR ANDROID)
|
|
|
|
|
|
+if (WIN32)
|
|
set(PNG_INCLUDE_DIRS ${INCLUDES_BASE_DIR}/png)
|
|
set(PNG_INCLUDE_DIRS ${INCLUDES_BASE_DIR}/png)
|
|
- set(VORBIS_INCLUDE_DIR ${INCLUDES_BASE_DIR}/vorbis)
|
|
|
|
-
|
|
|
|
target_sources(fmt.hdll PRIVATE
|
|
target_sources(fmt.hdll PRIVATE
|
|
${INCLUDES_BASE_DIR}/png/png.c
|
|
${INCLUDES_BASE_DIR}/png/png.c
|
|
${INCLUDES_BASE_DIR}/png/pngerror.c
|
|
${INCLUDES_BASE_DIR}/png/pngerror.c
|
|
@@ -28,7 +26,13 @@ if (WIN32 OR ANDROID)
|
|
${INCLUDES_BASE_DIR}/png/pngwio.c
|
|
${INCLUDES_BASE_DIR}/png/pngwio.c
|
|
${INCLUDES_BASE_DIR}/png/pngwrite.c
|
|
${INCLUDES_BASE_DIR}/png/pngwrite.c
|
|
${INCLUDES_BASE_DIR}/png/pngwtran.c
|
|
${INCLUDES_BASE_DIR}/png/pngwtran.c
|
|
- ${INCLUDES_BASE_DIR}/png/pngwutil.c
|
|
|
|
|
|
+ ${INCLUDES_BASE_DIR}/png/pngwutil.c)
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+if (WIN32)
|
|
|
|
+ set(VORBIS_INCLUDE_DIR ${INCLUDES_BASE_DIR}/vorbis)
|
|
|
|
+
|
|
|
|
+ target_sources(fmt.hdll PRIVATE
|
|
${INCLUDES_BASE_DIR}/vorbis/bitrate.c
|
|
${INCLUDES_BASE_DIR}/vorbis/bitrate.c
|
|
${INCLUDES_BASE_DIR}/vorbis/bitwise.c
|
|
${INCLUDES_BASE_DIR}/vorbis/bitwise.c
|
|
${INCLUDES_BASE_DIR}/vorbis/block.c
|
|
${INCLUDES_BASE_DIR}/vorbis/block.c
|
|
@@ -52,11 +56,6 @@ if (WIN32 OR ANDROID)
|
|
${INCLUDES_BASE_DIR}/vorbis/vorbisfile.c
|
|
${INCLUDES_BASE_DIR}/vorbis/vorbisfile.c
|
|
${INCLUDES_BASE_DIR}/vorbis/window.c
|
|
${INCLUDES_BASE_DIR}/vorbis/window.c
|
|
)
|
|
)
|
|
-
|
|
|
|
- if (ANDROID)
|
|
|
|
- # TODO: enable
|
|
|
|
- target_compile_definitions(fmt.hdll PRIVATE PNG_ARM_NEON_OPT=0)
|
|
|
|
- endif()
|
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
if(WIN32)
|
|
if(WIN32)
|
|
@@ -134,32 +133,104 @@ if(WIN32)
|
|
${INCLUDES_BASE_DIR}/zlib/trees.c
|
|
${INCLUDES_BASE_DIR}/zlib/trees.c
|
|
${INCLUDES_BASE_DIR}/zlib/zutil.c
|
|
${INCLUDES_BASE_DIR}/zlib/zutil.c
|
|
)
|
|
)
|
|
-elseif(ANDROID)
|
|
|
|
|
|
+elseif(DOWNLOAD_DEPENDENCIES)
|
|
find_package(ZLIB REQUIRED)
|
|
find_package(ZLIB REQUIRED)
|
|
|
|
|
|
ExternalProject_Add(turbojpeg-project
|
|
ExternalProject_Add(turbojpeg-project
|
|
URL https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.1/libjpeg-turbo-3.1.1.tar.gz
|
|
URL https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.1/libjpeg-turbo-3.1.1.tar.gz
|
|
URL_HASH SHA256=aadc97ea91f6ef078b0ae3a62bba69e008d9a7db19b34e4ac973b19b71b4217c
|
|
URL_HASH SHA256=aadc97ea91f6ef078b0ae3a62bba69e008d9a7db19b34e4ac973b19b71b4217c
|
|
CMAKE_ARGS
|
|
CMAKE_ARGS
|
|
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
|
|
|
- -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
|
|
|
- -DANDROID_PLATFORM=${ANDROID_PLATFORM}
|
|
|
|
- -DANDROID_ABI=${CMAKE_ANDROID_ARCH_ABI}
|
|
|
|
|
|
+ ${CMAKE_COMMON_DEP_ARGS}
|
|
-DBUILD_SHARED_LIBS=OFF
|
|
-DBUILD_SHARED_LIBS=OFF
|
|
|
|
+ -DCMAKE_INSTALL_LIBDIR=lib
|
|
# INSTALL_BYPRODUCTS in CMake 3.26+
|
|
# INSTALL_BYPRODUCTS in CMake 3.26+
|
|
- BUILD_BYPRODUCTS <INSTALL_DIR>/${CMAKE_INSTALL_LIBDIR}/libturbojpeg.a
|
|
|
|
|
|
+ BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libturbojpeg.a
|
|
DOWNLOAD_EXTRACT_TIMESTAMP true
|
|
DOWNLOAD_EXTRACT_TIMESTAMP true
|
|
)
|
|
)
|
|
|
|
|
|
ExternalProject_Get_Property(turbojpeg-project INSTALL_DIR)
|
|
ExternalProject_Get_Property(turbojpeg-project INSTALL_DIR)
|
|
|
|
|
|
add_library(turbojpeg STATIC IMPORTED)
|
|
add_library(turbojpeg STATIC IMPORTED)
|
|
- set_target_properties(turbojpeg PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libturbojpeg.a)
|
|
|
|
|
|
+ set_target_properties(turbojpeg PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libturbojpeg.a)
|
|
|
|
|
|
set(TurboJPEG_INCLUDE_DIRS ${INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR})
|
|
set(TurboJPEG_INCLUDE_DIRS ${INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR})
|
|
set(TurboJPEG_LIBRARIES turbojpeg)
|
|
set(TurboJPEG_LIBRARIES turbojpeg)
|
|
|
|
|
|
add_dependencies(turbojpeg turbojpeg-project)
|
|
add_dependencies(turbojpeg turbojpeg-project)
|
|
|
|
+
|
|
|
|
+ ExternalProject_Add(libpng
|
|
|
|
+ URL https://github.com/pnggroup/libpng/archive/refs/tags/v1.6.50.tar.gz
|
|
|
|
+ URL_HASH SHA256=71158e53cfdf2877bc99bcab33641d78df3f48e6e0daad030afe9cb8c031aa46
|
|
|
|
+ CMAKE_ARGS
|
|
|
|
+ ${CMAKE_COMMON_DEP_ARGS}
|
|
|
|
+ -DPNG_SHARED=OFF
|
|
|
|
+ -DPNG_TESTS=OFF
|
|
|
|
+ -DPNG_TOOLS=OFF
|
|
|
|
+ -DPNG_FRAMEWORK=OFF
|
|
|
|
+ -DCMAKE_INSTALL_LIBDIR=lib
|
|
|
|
+ # INSTALL_BYPRODUCTS in CMake 3.26+
|
|
|
|
+ BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libpng.a
|
|
|
|
+ DOWNLOAD_EXTRACT_TIMESTAMP true
|
|
|
|
+ )
|
|
|
|
+ ExternalProject_Get_Property(libpng INSTALL_DIR)
|
|
|
|
+
|
|
|
|
+ add_library(png STATIC IMPORTED)
|
|
|
|
+ set_target_properties(png PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libpng.a)
|
|
|
|
+
|
|
|
|
+ set(PNG_INCLUDE_DIRS ${INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR})
|
|
|
|
+ set(PNG_LIBRARIES png)
|
|
|
|
+
|
|
|
|
+ add_dependencies(png libpng)
|
|
|
|
+
|
|
|
|
+ ExternalProject_Add(libogg
|
|
|
|
+ URL https://github.com/xiph/ogg/releases/download/v1.3.6/libogg-1.3.6.tar.gz
|
|
|
|
+ URL_HASH SHA256=83e6704730683d004d20e21b8f7f55dcb3383cdf84c0daedf30bde175f774638
|
|
|
|
+ CMAKE_ARGS
|
|
|
|
+ ${CMAKE_COMMON_DEP_ARGS}
|
|
|
|
+ -DCMAKE_INSTALL_LIBDIR=lib
|
|
|
|
+ # INSTALL_BYPRODUCTS in CMake 3.26+
|
|
|
|
+ BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libogg.a
|
|
|
|
+ DOWNLOAD_EXTRACT_TIMESTAMP true
|
|
|
|
+ )
|
|
|
|
+ ExternalProject_Get_Property(libogg INSTALL_DIR)
|
|
|
|
+ set(OGG_INSTALL_DIR ${INSTALL_DIR})
|
|
|
|
+
|
|
|
|
+ set(OGG_LIBRARY ${OGG_INSTALL_DIR}/lib/libogg.a)
|
|
|
|
+ set(OGG_INCLUDE_DIR ${OGG_INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR})
|
|
|
|
+
|
|
|
|
+ ExternalProject_Add(libvorbis
|
|
|
|
+ URL https://github.com/xiph/vorbis/releases/download/v1.3.7/libvorbis-1.3.7.tar.xz
|
|
|
|
+ URL_HASH SHA256=b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b
|
|
|
|
+ CMAKE_ARGS
|
|
|
|
+ ${CMAKE_COMMON_DEP_ARGS}
|
|
|
|
+ -DOGG_LIBRARY=${OGG_LIBRARY}
|
|
|
|
+ -DOGG_INCLUDE_DIR=${OGG_INCLUDE_DIR}
|
|
|
|
+ -DCMAKE_INSTALL_LIBDIR=lib
|
|
|
|
+ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 # https://github.com/xiph/vorbis/issues/113
|
|
|
|
+ # INSTALL_BYPRODUCTS in CMake 3.26+
|
|
|
|
+ BUILD_BYPRODUCTS
|
|
|
|
+ <INSTALL_DIR>/lib/libvorbis.a
|
|
|
|
+ <INSTALL_DIR>/lib/libvorbisfile.a
|
|
|
|
+ DOWNLOAD_EXTRACT_TIMESTAMP true
|
|
|
|
+ )
|
|
|
|
+ add_dependencies(libvorbis libogg)
|
|
|
|
+ ExternalProject_Get_Property(libvorbis INSTALL_DIR)
|
|
|
|
+ set(VORBIS_INSTALL_DIR ${INSTALL_DIR})
|
|
|
|
+
|
|
|
|
+ add_library(ogg STATIC IMPORTED)
|
|
|
|
+ set_target_properties(ogg PROPERTIES IMPORTED_LOCATION ${OGG_LIBRARY})
|
|
|
|
+
|
|
|
|
+ add_library(vorbis STATIC IMPORTED)
|
|
|
|
+ set_target_properties(vorbis PROPERTIES IMPORTED_LOCATION ${VORBIS_INSTALL_DIR}/lib/libvorbis.a)
|
|
|
|
+ add_library(vorbisfile STATIC IMPORTED)
|
|
|
|
+ set_target_properties(vorbisfile PROPERTIES IMPORTED_LOCATION ${VORBIS_INSTALL_DIR}/lib/libvorbisfile.a)
|
|
|
|
+
|
|
|
|
+ set(VORBIS_INCLUDE_DIR ${VORBIS_INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR} ${OGG_INCLUDE_DIR})
|
|
|
|
+ set(OGGVORBIS_LIBRARIES vorbis ogg vorbisfile)
|
|
|
|
+
|
|
|
|
+ add_dependencies(vorbisfile libvorbis)
|
|
|
|
+ add_dependencies(vorbis libvorbis)
|
|
|
|
+ add_dependencies(ogg libogg)
|
|
else()
|
|
else()
|
|
find_package(ZLIB REQUIRED)
|
|
find_package(ZLIB REQUIRED)
|
|
find_package(PNG REQUIRED)
|
|
find_package(PNG REQUIRED)
|
|
@@ -195,11 +266,6 @@ target_link_libraries(fmt.hdll
|
|
${OGGVORBIS_LIBRARIES}
|
|
${OGGVORBIS_LIBRARIES}
|
|
)
|
|
)
|
|
|
|
|
|
-target_compile_definitions(fmt.hdll
|
|
|
|
- PRIVATE
|
|
|
|
- ${PNG_DEFINITIONS}
|
|
|
|
-)
|
|
|
|
-
|
|
|
|
install(
|
|
install(
|
|
TARGETS
|
|
TARGETS
|
|
fmt.hdll
|
|
fmt.hdll
|