diff options
author | crupest <crupest@outlook.com> | 2023-10-07 00:27:54 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2023-10-07 00:27:54 +0800 |
commit | 2e0eebc4867f5b40c2d457015f267e8d7ebe21ca (patch) | |
tree | 1df65288400fac72dea08e8d08b4e4a18ce624ab /scripts/cmake/cairo.cmake | |
parent | 538616817a749642836ad3b2faff16706500602e (diff) | |
download | cru-2e0eebc4867f5b40c2d457015f267e8d7ebe21ca.tar.gz cru-2e0eebc4867f5b40c2d457015f267e8d7ebe21ca.tar.bz2 cru-2e0eebc4867f5b40c2d457015f267e8d7ebe21ca.zip |
Try build cairo myself.
Diffstat (limited to 'scripts/cmake/cairo.cmake')
-rw-r--r-- | scripts/cmake/cairo.cmake | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/cmake/cairo.cmake b/scripts/cmake/cairo.cmake new file mode 100644 index 00000000..d1a775e3 --- /dev/null +++ b/scripts/cmake/cairo.cmake @@ -0,0 +1,25 @@ +find_program(MESON meson REQUIRED) +find_program(NINJA ninja REQUIRED) + +set(CAIRO_BUILD_DIR ${CMAKE_BINARY_DIR}/cairo/build) +set(CAIRO_INSTALL_DIR ${CMAKE_BINARY_DIR}/cairo/install) + +set(CAIRO_MESON_SETUP meson setup ${CAIRO_BUILD_DIR} --prefix=${CAIRO_INSTALL_DIR} --reconfigure) + +if(EMSCRIPTEN) + FILE(REAL_PATH ${CMAKE_C_COMPILER}/.. EMSCRIPTEN_TOOLCHAIN) + set(EMSCRIPTEN_CROSS_FILE_TEMPLATE ${PROJECT_SOURCE_DIR}/scripts/meson-emscripten.ini.in) + set(EMSCRIPTEN_CROSS_FILE ${CAIRO_BUILD_DIR}/emscripten.ini) + configure_file(${EMSCRIPTEN_CROSS_FILE_TEMPLATE} ${EMSCRIPTEN_CROSS_FILE}) + set(CAIRO_MESON_SETUP ${CAIRO_MESON_SETUP} --cross-file ${EMSCRIPTEN_CROSS_FILE}) +endif() + +add_custom_target( + cairo + COMMAND mkdir -p ${CAIRO_BUILD_DIR} ${CAIRO_INSTALL_DIR} + COMMAND ${CAIRO_MESON_SETUP} + COMMAND ninja -C ${CAIRO_BUILD_DIR} + COMMAND ninja -C ${CAIRO_BUILD_DIR} install + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/cairo +) + |