Ich habe aus verschiedenen Gründen die Sourcen (bzw. die Projekte) in subprojects übernommen:
- Ich wollte systemunabhängig sein. Z.B. gibt es thrift in Debian/Stable nur in einer alten Version, die letzten Bugfixes wollte ich aber mitnehmen
- Den Aufwand zusätzlich verschiedene Pakete zu installieren wollte ich mir ersparen. Versionskonflikte eingeschlossen
- Die Libs werden statisch gelinkt und damit umgehe ich auch Probleme bei einem Update des Systems
Falls man das System (und die Installation) unter Kontrolle hat, ist es auch möglich, statt den subprojects auch installierte Pakete zu verwenden. Dabei wird nur ein Patch von meson.build benötigt. Das habe ich z.B. in VDR*ELEC gemacht. Siehe z.B. hier.
Code
# thrift
-thrift_opts = cmake.subproject_options()
-thrift_opts.add_cmake_defines({'WITH_AS3': 'OFF',
- 'WITH_QT5': 'OFF',
- 'BUILD_JAVA': 'OFF',
- 'BUILD_JAVASCRIPT': 'OFF',
- 'BUILD_PYTHON': 'OFF',
- 'BUILD_TESTING': 'OFF',
- 'WITH_C_GLIB': 'OFF',
- 'WITH_OPENSSL': 'OFF',
- 'BUILD_SHARED_LIBS': 'OFF',
- 'BUILD_COMPILER': 'OFF',
- 'CMAKE_INSTALL_PREFIX': '.',
- 'CMAKE_POSITION_INDEPENDENT_CODE': 'ON' })
-
-thrift_proj = cmake.subproject('thrift', options: thrift_opts)
-thrift_dep = thrift_proj.get_variable('thrift_dep')
+thrift_dep = dependency('thrift')
Display More