Conditionally add freetype and wgpu libs to packaging files

This commit is contained in:
Nikita Lisitsa 2024-08-16 18:12:47 +03:00
parent 9273a6f538
commit 241f3afde3
5 changed files with 33 additions and 1 deletions

View file

@ -18,6 +18,11 @@ if(PSEMEK_ROBUST_PREDICATES)
list(APPEND PSEMEK_DEFINITIONS "-DPSEMEK_ROBUST_PREDICATES=1") list(APPEND PSEMEK_DEFINITIONS "-DPSEMEK_ROBUST_PREDICATES=1")
endif() 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) 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")) 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) list(APPEND PSEMEK_CXX_FLAGS -Wall -Werror -Wextra -pedantic -Wno-narrowing -Wno-sign-compare)

View file

@ -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_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "include/*.hpp")
file(GLOB_RECURSE PSEMEK_FONTS_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "source/*.cpp") 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}) 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_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}) target_link_libraries(psemek-fonts PUBLIC psemek-util psemek-geom psemek-gfx rapidjson ${FREETYPE_LIBRARY})

View file

@ -77,10 +77,21 @@ function(psemek_add_executable_impl target is_application)
if(NOT ANDROID) if(NOT ANDROID)
get_filename_component(_OUTPUT_DIRECTORY "${_OUTPUT_PATH}" DIRECTORY) get_filename_component(_OUTPUT_DIRECTORY "${_OUTPUT_PATH}" DIRECTORY)
set(_COPY_FILES $<TARGET_FILE:${target}> ${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 add_custom_command(TARGET ${target} POST_BUILD
COMMAND echo Packaging target ${target} into ${_OUTPUT_PATH} COMMAND echo Packaging target ${target} into ${_OUTPUT_PATH}
COMMAND mkdir -pv "${_OUTPUT_DIRECTORY}" COMMAND mkdir -pv "${_OUTPUT_DIRECTORY}"
COMMAND zip -v "${_OUTPUT_PATH}" -j $<TARGET_FILE:${target}> ${PSEMEK_PACKAGE_COPY_FILES} COMMAND zip -v "${_OUTPUT_PATH}" -j ${_COPY_FILES}
COMMAND echo Packaged target ${target} into ${_OUTPUT_PATH} COMMAND echo Packaged target ${target} into ${_OUTPUT_PATH}
) )
else() else()

View file

@ -9,6 +9,9 @@ set(PSEMEK_PACKAGE_TARGET ON)
set(PSEMEK_PACKAGE_COPY_FILES set(PSEMEK_PACKAGE_COPY_FILES
${PSEMEK_PACKAGE_ROOT}/sdl2/install/lib/libSDL2-2.0.so.0 ${PSEMEK_PACKAGE_ROOT}/sdl2/install/lib/libSDL2-2.0.so.0
)
set(PSEMEK_PACKAGE_COPY_FILES_FREETYPE
${PSEMEK_PACKAGE_ROOT}/libfreetype.so.6 ${PSEMEK_PACKAGE_ROOT}/libfreetype.so.6
) )

View file

@ -15,6 +15,13 @@ set(PSEMEK_PACKAGE_COPY_FILES
${PSEMEK_PACKAGE_ROOT}/sdl2/install/bin/SDL2.dll ${PSEMEK_PACKAGE_ROOT}/sdl2/install/bin/SDL2.dll
/usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll
${PSEMEK_PACKAGE_ROOT}/wgpu-native/install/target/wgpu_native.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/* ${PSEMEK_PACKAGE_ROOT}/freetype/install/bin/*
) )