diff options
author | crupest <crupest@outlook.com> | 2023-10-07 11:05:03 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2023-10-07 11:05:03 +0800 |
commit | faa63afb8db43690fa633fe1673be9331d278e24 (patch) | |
tree | 427d2d34bdd2bcb7da6a498a3e763fc4fec139be /scripts/cmake/meson-projects.cmake | |
parent | 5571f4a03d10d590c0d0d0e64b9e210d0752a44e (diff) | |
download | cru-faa63afb8db43690fa633fe1673be9331d278e24.tar.gz cru-faa63afb8db43690fa633fe1673be9331d278e24.tar.bz2 cru-faa63afb8db43690fa633fe1673be9331d278e24.zip |
Try to unify meson projects. So deps will be well organized.
Diffstat (limited to 'scripts/cmake/meson-projects.cmake')
-rw-r--r-- | scripts/cmake/meson-projects.cmake | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/cmake/meson-projects.cmake b/scripts/cmake/meson-projects.cmake new file mode 100644 index 00000000..94b3729d --- /dev/null +++ b/scripts/cmake/meson-projects.cmake @@ -0,0 +1,25 @@ +find_program(MESON meson REQUIRED) +find_program(NINJA ninja REQUIRED) + +set(MESON_PROJECTS_BUILD_DIR ${CMAKE_BINARY_DIR}/meson-projects/build) +set(MESON_PROJECTS_INSTALL_DIR ${CMAKE_BINARY_DIR}/meson-projects/install) + +set(MESON_PROJECTS_MESON_SETUP meson setup ${MESON_PROJECTS_BUILD_DIR} --prefix=${MESON_PROJECTS_INSTALL_DIR}) + +if(EMSCRIPTEN) + cmake_path(GET CMAKE_C_COMPILER PARENT_PATH EMSCRIPTEN_TOOLCHAIN) + set(EMSCRIPTEN_CROSS_FILE_TEMPLATE ${PROJECT_SOURCE_DIR}/scripts/meson-emscripten.ini.in) + set(EMSCRIPTEN_CROSS_FILE ${MESON_PROJECTS_BUILD_DIR}/emscripten.ini) + configure_file(${EMSCRIPTEN_CROSS_FILE_TEMPLATE} ${EMSCRIPTEN_CROSS_FILE}) + set(MESON_PROJECTS_MESON_SETUP ${MESON_PROJECTS_MESON_SETUP} --cross-file ${EMSCRIPTEN_CROSS_FILE}) +endif() + +add_custom_target( + build-meson-projects + COMMAND mkdir -p ${MESON_PROJECTS_BUILD_DIR} ${MESON_PROJECTS_INSTALL_DIR} + COMMAND ${MESON_PROJECTS_MESON_SETUP} + COMMAND ninja -C ${MESON_PROJECTS_BUILD_DIR} + COMMAND ninja -C ${MESON_PROJECTS_BUILD_DIR} install + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/meson-projects +) + |