aboutsummaryrefslogtreecommitdiff
path: root/scripts/cmake/meson-projects.cmake
blob: d122ed2985b0e9d38762401fd2dec756f7fe9700 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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} -Dpango=enabled -Dcairo=enabled --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
)