39function(create_meson_stages _file_setup _file_compile _file_install _component _component_title _srcdir _builddir _meson_options _library_mode _output_libraries)
42 set(_indent_level
"${ARGV10}")
43 string(REPEAT
"\t" ${_indent_level} _MESON_INDENT_)
45 set(_MESON_INDENT_
"")
48 if(${_library_mode} STREQUAL
"static")
49 set(_MESON_LIBRARY_TYPE
"static")
50 list(APPEND _meson_options
"-Db_staticpic=true")
51 elseif(${_library_mode} STREQUAL
"shared")
52 set(_MESON_LIBRARY_TYPE
"shared")
54 message(FATAL_ERROR
"Unknown library mode '${_library_mode}' in create_meson_stages")
58 set(_MESON_COMPONENT
"${_component}")
59 set(_MESON_COMPONENT_TITLE
"${_component_title}")
60 string(APPEND _MESON_STAGE_BUILD
"${_component}" "_build")
61 string(APPEND _MESON_STAGE_INSTALL
"${_component}" "_install")
62 set(_MESON_BUILD_DIR
"${_builddir}")
63 set(_MESON_SRCDIR
"${_srcdir}")
64 set(_MESON_OUTPUT_LIBRARIES
"${_output_libraries}")
66 if(CMAKE_BUILD_TYPE STREQUAL
"Release" AND CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE)
67 set(LTO_ENABLED
"true")
69 set(LTO_ENABLED
"false")
72 list_join(_MESON_OPTIONS
"${_meson_options}" " ")
74 sanitize_for_filename(_MESON_COMPONENT_SAFE
"${_component}")
77 "${BUILDMASTER_SCRIPTS_MESON_DIR}/${_MESON_COMPONENT_SAFE}_configure.cmake"
79 set(_MESON_COMPILE_FILE
80 "${BUILDMASTER_SCRIPTS_MESON_DIR}/${_MESON_COMPONENT_SAFE}_compile.cmake"
82 set(_MESON_INSTALL_FILE
83 "${BUILDMASTER_SCRIPTS_MESON_DIR}/${_MESON_COMPONENT_SAFE}_install.cmake"
87 "${BUILDMASTER_TOOLS_MESON_SRCDIR}/setup.cmake.in"
88 "${_MESON_SETUP_FILE}"
92 "${BUILDMASTER_TOOLS_MESON_SRCDIR}/compile.cmake.in"
93 "${_MESON_COMPILE_FILE}"
97 "${BUILDMASTER_TOOLS_MESON_SRCDIR}/install.cmake.in"
98 "${_MESON_INSTALL_FILE}"
102 set(${_file_setup}
"${_MESON_SETUP_FILE}" PARENT_SCOPE)
103 set(${_file_compile}
"${_MESON_COMPILE_FILE}" PARENT_SCOPE)
104 set(${_file_install}
"${_MESON_INSTALL_FILE}" PARENT_SCOPE)