From 241f3afde3546c1891eabfcec1fa082f65b8cf93 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 16 Aug 2024 18:12:47 +0300 Subject: [PATCH] Conditionally add freetype and wgpu libs to packaging files --- CMakeLists.txt | 5 +++++ libs/fonts/CMakeLists.txt | 6 ++++++ package/CMakeLists.txt | 13 ++++++++++++- package/linux/toolchain.cmake | 3 +++ package/win/toolchain-target.cmake | 7 +++++++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5dbc8c92..2bb66990 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,11 @@ if(PSEMEK_ROBUST_PREDICATES) list(APPEND PSEMEK_DEFINITIONS "-DPSEMEK_ROBUST_PREDICATES=1") endif() +option(PSEMEK_USE_FREETYPE "Include Freetype fonts support" OFF) +if(PSEMEK_USE_FREETYPE) + list(APPEND PSEMEK_DEFINITIONS "-DPSEMEK_USE_FREETYPE=1") +endif() + set(PSEMEK_CXX_FLAGS) if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")) list(APPEND PSEMEK_CXX_FLAGS -Wall -Werror -Wextra -pedantic -Wno-narrowing -Wno-sign-compare) diff --git a/libs/fonts/CMakeLists.txt b/libs/fonts/CMakeLists.txt index c81d806b..220bdcab 100644 --- a/libs/fonts/CMakeLists.txt +++ b/libs/fonts/CMakeLists.txt @@ -3,6 +3,12 @@ find_package(Freetype REQUIRED) file(GLOB_RECURSE PSEMEK_FONTS_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "include/*.hpp") file(GLOB_RECURSE PSEMEK_FONTS_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "source/*.cpp") +list(REMOVE_ITEM PSEMEK_FONTS_SOURCES "source/freetype.cpp") + +if(PSEMEK_USE_FREETYPE) + list(APPEND PSEMEK_FONTS_SOURCES "source/freetype.cpp") +endif() + psemek_add_library(psemek-fonts ${PSEMEK_FONTS_HEADERS} ${PSEMEK_FONTS_SOURCES}) target_include_directories(psemek-fonts PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" ${FREETYPE_INCLUDE_DIRS}) target_link_libraries(psemek-fonts PUBLIC psemek-util psemek-geom psemek-gfx rapidjson ${FREETYPE_LIBRARY}) diff --git a/package/CMakeLists.txt b/package/CMakeLists.txt index 4e8a14c4..3819b9f0 100644 --- a/package/CMakeLists.txt +++ b/package/CMakeLists.txt @@ -77,10 +77,21 @@ function(psemek_add_executable_impl target is_application) if(NOT ANDROID) get_filename_component(_OUTPUT_DIRECTORY "${_OUTPUT_PATH}" DIRECTORY) + + set(_COPY_FILES $ ${PSEMEK_PACKAGE_COPY_FILES}) + + if(PSEMEK_GRAPHICS_API STREQUAL WEBGPU) + list(APPEND _COPY_FILES ${PSEMEK_PACKAGE_COPY_FILES_WEBGPU}) + endif() + + if(PSEMEK_USE_FREETYPE) + list(APPEND _COPY_FILES ${PSEMEK_PACKAGE_COPY_FILES_FREETYPE}) + endif() + add_custom_command(TARGET ${target} POST_BUILD COMMAND echo Packaging target ${target} into ${_OUTPUT_PATH} COMMAND mkdir -pv "${_OUTPUT_DIRECTORY}" - COMMAND zip -v "${_OUTPUT_PATH}" -j $ ${PSEMEK_PACKAGE_COPY_FILES} + COMMAND zip -v "${_OUTPUT_PATH}" -j ${_COPY_FILES} COMMAND echo Packaged target ${target} into ${_OUTPUT_PATH} ) else() diff --git a/package/linux/toolchain.cmake b/package/linux/toolchain.cmake index f1bdddf1..db5aff36 100644 --- a/package/linux/toolchain.cmake +++ b/package/linux/toolchain.cmake @@ -9,6 +9,9 @@ set(PSEMEK_PACKAGE_TARGET ON) set(PSEMEK_PACKAGE_COPY_FILES ${PSEMEK_PACKAGE_ROOT}/sdl2/install/lib/libSDL2-2.0.so.0 +) + +set(PSEMEK_PACKAGE_COPY_FILES_FREETYPE ${PSEMEK_PACKAGE_ROOT}/libfreetype.so.6 ) diff --git a/package/win/toolchain-target.cmake b/package/win/toolchain-target.cmake index 7f32119b..6f71c234 100644 --- a/package/win/toolchain-target.cmake +++ b/package/win/toolchain-target.cmake @@ -15,6 +15,13 @@ set(PSEMEK_PACKAGE_COPY_FILES ${PSEMEK_PACKAGE_ROOT}/sdl2/install/bin/SDL2.dll /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll ${PSEMEK_PACKAGE_ROOT}/wgpu-native/install/target/wgpu_native.dll +) + +set(PSEMEK_PACKAGE_COPY_FILES_WGPU + ${PSEMEK_PACKAGE_ROOT}/wgpu-native/install/target/wgpu_native.dll +) + +set(PSEMEK_PACKAGE_COPY_FILES_FREETYPE ${PSEMEK_PACKAGE_ROOT}/freetype/install/bin/* )