diff options
author | Morten Larsen <morten.larsen@anywi.com> | 2022-01-18 00:54:36 +0100 |
---|---|---|
committer | Brian Gianforcaro <b.gianfo@gmail.com> | 2022-02-06 03:15:00 +0000 |
commit | 2c3b2978959c85c996c088f9c9db434df1736bdc (patch) | |
tree | 12e1049381fe61434d0a6411c166a05fb0e8c39b /Meta/Lagom/CMakeLists.txt | |
parent | d30cbf5d726d99abfafbca8d2ea2741f36dab2ac (diff) | |
download | serenity-2c3b2978959c85c996c088f9c9db434df1736bdc.zip |
Lagom: Exclude libraries with X86 code when building for macOS on Arm
The CMakeLists.txt for Lagom contains a few libraries and executables
with X86-specific code. By excluding those libraries, Lagom builds
for macOS on Arm as well. The places are marked FIXME to be removed
when the libraries will build for Arm.
Diffstat (limited to 'Meta/Lagom/CMakeLists.txt')
-rw-r--r-- | Meta/Lagom/CMakeLists.txt | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/Meta/Lagom/CMakeLists.txt b/Meta/Lagom/CMakeLists.txt index 3daf145601..80875faee8 100644 --- a/Meta/Lagom/CMakeLists.txt +++ b/Meta/Lagom/CMakeLists.txt @@ -304,12 +304,16 @@ if (BUILD_LAGOM) ) # ELF - file(GLOB LIBELF_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibELF/*.cpp") - # There's no way we can reliably make the dynamic loading classes cross platform - list(FILTER LIBELF_SOURCES EXCLUDE REGEX ".*Dynamic.*.cpp$") - lagom_lib(ELF elf - SOURCES ${LIBELF_SOURCES} - ) + # FIXME: Excluding arm64 is a temporary hack to circumvent a build problem + # for Lagom on Apple M1 + if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") + file(GLOB LIBELF_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibELF/*.cpp") + # There's no way we can reliably make the dynamic loading classes cross platform + list(FILTER LIBELF_SOURCES EXCLUDE REGEX ".*Dynamic.*.cpp$") + lagom_lib(ELF elf + SOURCES ${LIBELF_SOURCES} + ) + endif() # Gemini file(GLOB LIBGEMINI_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibGemini/*.cpp") @@ -458,10 +462,14 @@ if (BUILD_LAGOM) ) # x86 - file(GLOB LIBX86_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibX86/*.cpp") - lagom_lib(X86 x86 - SOURCES ${LIBX86_SOURCES} - ) + # FIXME: Excluding arm64 is a temporary hack to circumvent a build problem + # for Lagom on Apple M1 + if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") + file(GLOB LIBX86_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibX86/*.cpp") + lagom_lib(X86 x86 + SOURCES ${LIBX86_SOURCES} + ) + endif() if (NOT ENABLE_OSS_FUZZ AND NOT ENABLE_FUZZER_SANITIZER AND NOT ENABLE_COMPILER_EXPLORER_BUILD) # Lagom Examples @@ -476,9 +484,13 @@ if (BUILD_LAGOM) set_target_properties(adjtime_lagom PROPERTIES OUTPUT_NAME adjtime) target_link_libraries(adjtime_lagom LagomCore LagomMain) - add_executable(disasm_lagom ../../Userland/Utilities/disasm.cpp) - set_target_properties(disasm_lagom PROPERTIES OUTPUT_NAME disasm) - target_link_libraries(disasm_lagom LagomCore LagomELF LagomX86 LagomMain) + # FIXME: Excluding arm64 is a temporary hack to circumvent a build problem + # for Lagom on Apple M1 + if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") + add_executable(disasm_lagom ../../Userland/Utilities/disasm.cpp) + set_target_properties(disasm_lagom PROPERTIES OUTPUT_NAME disasm) + target_link_libraries(disasm_lagom LagomCore LagomELF LagomX86 LagomMain) + endif() add_executable(gml-format_lagom ../../Userland/Utilities/gml-format.cpp) set_target_properties(gml-format_lagom PROPERTIES OUTPUT_NAME gml-format) |