aboutsummaryrefslogtreecommitdiff
path: root/scripts/cmake
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-07 00:27:54 +0800
committercrupest <crupest@outlook.com>2023-10-07 00:27:54 +0800
commit2e0eebc4867f5b40c2d457015f267e8d7ebe21ca (patch)
tree1df65288400fac72dea08e8d08b4e4a18ce624ab /scripts/cmake
parent538616817a749642836ad3b2faff16706500602e (diff)
downloadcru-2e0eebc4867f5b40c2d457015f267e8d7ebe21ca.tar.gz
cru-2e0eebc4867f5b40c2d457015f267e8d7ebe21ca.tar.bz2
cru-2e0eebc4867f5b40c2d457015f267e8d7ebe21ca.zip
Try build cairo myself.
Diffstat (limited to 'scripts/cmake')
-rw-r--r--scripts/cmake/cairo.cmake25
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
+)
+