Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 2 additions & 19 deletions .github/workflows/release-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,8 @@ jobs:
packages: libfontconfig1-dev libgles2-mesa-dev libegl1-mesa-dev
version: 1.1

- name: Install LibXml2 via vcpkg (static)
run: vcpkg install libxml2:x64-linux

- name: Build pagx
run: >
node build_pag pagx-cli -a x64 -i
-DPAG_BUILD_CLI=ON
-DPAG_BUILD_SHARED=OFF
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-linux
run: node build_pag pagx-cli -a x64 -i -DPAG_BUILD_CLI=ON -DPAG_BUILD_SHARED=OFF

- name: Upload artifact
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -137,17 +129,8 @@ jobs:
depsync
shell: bash

- name: Install LibXml2 via vcpkg (static)
run: vcpkg install libxml2:x64-windows-static

- name: Build pagx
run: >
node build_pag pagx-cli -a x64 -i
-DPAG_BUILD_CLI=ON
-DPAG_BUILD_SHARED=OFF
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-windows-static
shell: pwsh
run: node build_pag pagx-cli -a x64 -i -DPAG_BUILD_CLI=ON -DPAG_BUILD_SHARED=OFF

- name: Upload artifact
uses: actions/upload-artifact@v4
Expand Down
29 changes: 11 additions & 18 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,12 @@ if (PAG_BUILD_SVG)
list(APPEND PAG_DEFINES PAG_BUILD_SVG)
endif ()

if (PAG_BUILD_CLI OR PAG_BUILD_TESTS)
list(APPEND PAG_STATIC_VENDORS libxml2)
list(APPEND PAG_INCLUDES third_party/out/libxml2/${INCLUDE_ENTRY})
list(APPEND PAG_DEFINES LIBXML_STATIC)
endif ()

function(find_include_dirs out)
file(GLOB_RECURSE headers ${ARGN})
foreach (path ${headers})
Expand Down Expand Up @@ -746,35 +752,23 @@ if (PAG_BUILD_CLI)
"}\n"
"} // namespace pagx::cli\n")

# Find LibXml2
if (APPLE)
execute_process(
COMMAND xcrun --show-sdk-path
OUTPUT_VARIABLE _MACOS_SDK_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(LIBXML2_INCLUDE_DIR "${_MACOS_SDK_PATH}/usr/include/libxml2" CACHE PATH "" FORCE)
set(LIBXML2_LIBRARY "${_MACOS_SDK_PATH}/usr/lib/libxml2.tbd" CACHE FILEPATH "" FORCE)
endif ()
find_package(LibXml2 REQUIRED)

# CLI executable
file(GLOB_RECURSE CLI_FILES src/cli/*.cpp src/cli/*.h)
add_executable(pagx-cli ${CLI_FILES})
add_dependencies(pagx-cli pag-vendor)
set_target_properties(pagx-cli PROPERTIES OUTPUT_NAME pagx)
target_include_directories(pagx-cli PRIVATE
src/cli
${PAG_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR}/generated
${LIBXML2_INCLUDE_DIR})
${CMAKE_CURRENT_BINARY_DIR}/generated)
target_compile_options(pagx-cli PRIVATE ${PAG_COMPILE_OPTIONS})
target_compile_definitions(pagx-cli PRIVATE PAGX_CLI_VERSION="${PAGX_CLI_VERSION}")
set(CLI_EXTRA_LIBS)
if (LINUX)
find_package(Fontconfig REQUIRED)
list(APPEND CLI_EXTRA_LIBS Fontconfig::Fontconfig)
endif ()
target_link_libraries(pagx-cli pag ${PAG_SHARED_LIBS} LibXml2::LibXml2 ${CLI_EXTRA_LIBS})
target_link_libraries(pagx-cli pag ${PAG_SHARED_LIBS} ${CLI_EXTRA_LIBS})
endif ()

if (PAG_BUILD_TESTS)
Expand All @@ -797,13 +791,12 @@ if (PAG_BUILD_TESTS)
file(GLOB_RECURSE CLI_TEST_FILES src/cli/*.cpp src/cli/*.h)
list(FILTER CLI_TEST_FILES EXCLUDE REGEX "main\\.cpp$")
list(APPEND PAG_TEST_FILES ${SRC_FILES} ${CLI_TEST_FILES})
list(APPEND PAG_TEST_LIBS pag ${PAG_SHARED_LIBS} LibXml2::LibXml2)
list(APPEND PAG_TEST_LIBS pag ${PAG_SHARED_LIBS})
set(GOOGLE_TEST_DIR ${TGFX_DIR}/third_party/googletest/googletest)
list(APPEND PAG_TEST_INCLUDES ${PAG_INCLUDES} test/src
${GOOGLE_TEST_DIR} ${GOOGLE_TEST_DIR}/include
${TGFX_DIR}/third_party/json/include
${CMAKE_CURRENT_BINARY_DIR}/generated
${LIBXML2_INCLUDE_DIR})
${CMAKE_CURRENT_BINARY_DIR}/generated)

add_vendor_target(test-vendor STATIC_VENDORS googletest CONFIG_DIR ${TGFX_DIR})
find_vendor_libraries(test-vendor STATIC TEST_VENDOR_STATIC_LIBRARIES)
Expand Down
5 changes: 5 additions & 0 deletions DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@
"url": "https://github.com/Tehreer/SheenBidi.git",
"commit": "cfe430e7375a7845b679adae9d51dac6deaa8858",
"dir": "third_party/SheenBidi"
},
{
"url": "https://github.com/GNOME/libxml2.git",
"commit": "3d840e17858de03a09fba8b202e3a89267d5795a",
"dir": "third_party/libxml2"
}
]
},
Expand Down
28 changes: 28 additions & 0 deletions vendor.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,34 @@
"SheenBidi"
]
}
},
{
"name": "libxml2",
"cmake": {
"targets": [
"LibXml2"
],
"arguments": [
"-DBUILD_SHARED_LIBS=OFF",
"-DLIBXML2_WITH_ICONV=OFF",
"-DLIBXML2_WITH_ICU=OFF",
"-DLIBXML2_WITH_LZMA=OFF",
"-DLIBXML2_WITH_ZLIB=OFF",
"-DLIBXML2_WITH_PYTHON=OFF",
"-DLIBXML2_WITH_PROGRAMS=OFF",
"-DLIBXML2_WITH_TESTS=OFF",
"-DLIBXML2_WITH_HTTP=OFF"
],
"includes": [
"${SOURCE_DIR}/include/libxml",
"${BUILD_DIR}/libxml"
],
"platforms": [
Comment thread
CodeJhF marked this conversation as resolved.
"mac",
"win",
"linux"
]
}
}
]
}