Skip to content

Commit

Permalink
3rdparty: inject cross flags into the compiler executable
Browse files Browse the repository at this point in the history
  • Loading branch information
amyspark committed Feb 2, 2023
1 parent cf62601 commit 01af6cd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 19 deletions.
26 changes: 9 additions & 17 deletions 3rdparty/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -367,35 +367,27 @@ macro(mesonify VAR DEST)
endmacro()

if (ANDROID OR (CMAKE_CROSSCOMPILING AND NOT APPLE))
set(SECURITY_C_FLAGS "${SECURITY_C_FLAGS} --sysroot=${CMAKE_SYSROOT}")
set(SECURITY_CXX_FLAGS "${SECURITY_CXX_FLAGS} --sysroot=${CMAKE_SYSROOT}")
set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${CMAKE_SYSROOT}")
set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${CMAKE_SYSROOT}")
set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --sysroot=${CMAKE_SYSROOT}")
set(CROSS_COMPILE_FLAGS "--sysroot=${CMAKE_SYSROOT}")
set(CROSS_LINKER_FLAGS "--sysroot=${CMAKE_SYSROOT}")
elseif (APPLE)
set(SECURITY_C_FLAGS "${SECURITY_C_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
set(SECURITY_CXX_FLAGS "${SECURITY_CXX_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}")
set(CROSS_COMPILE_FLAGS "-isysroot ${CMAKE_OSX_SYSROOT}")
set(CROSS_LINKER_FLAGS "-isysroot ${CMAKE_OSX_SYSROOT}")
endif()

if (ANDROID OR CMAKE_CROSSCOMPILING)
set(SECURITY_C_FLAGS "${SECURITY_C_FLAGS} --target=${CMAKE_C_COMPILER_TARGET}")
set(SECURITY_CXX_FLAGS "${SECURITY_CXX_FLAGS} --target=${CMAKE_CXX_COMPILER_TARGET}")
set(SECURITY_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --target=${CMAKE_C_COMPILER_TARGET}")
set(SECURITY_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --target=${CMAKE_C_COMPILER_TARGET}")
set(SECURITY_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --target=${CMAKE_C_COMPILER_TARGET}")
set(CROSS_COMPILE_FLAGS "${CROSS_COMPILE_FLAGS} --target=${CMAKE_C_COMPILER_TARGET}")
set(CROSS_LINKER_FLAGS "${CROSS_EXE_LINKER_FLAGS} --target=${CMAKE_C_COMPILER_TARGET}")
endif()

if (CMAKE_OSX_ARCHITECTURES)
set(SECURITY_C_FLAGS "${SECURITY_C_FLAGS} -arch ${CMAKE_OSX_ARCHITECTURES}")
set(SECURITY_CXX_FLAGS "${SECURITY_CXX_FLAGS} -arch ${CMAKE_OSX_ARCHITECTURES}")
set(CROSS_COMPILE_FLAGS "${CROSS_COMPILE_FLAGS} -arch ${CMAKE_OSX_ARCHITECTURES}")
endif()

mesonify(SECURITY_C_FLAGS _security_c_flags)
mesonify(SECURITY_CXX_FLAGS _security_cxx_flags)
mesonify(SECURITY_EXE_LINKER_FLAGS _security_exe_linker_flags)
mesonify(CROSS_COMPILE_FLAGS _cross_compile_flags)
mesonify(CROSS_LINKER_FLAGS _cross_linker_flags)

# Block any libraries not coming from our PATH when crosscompiling
if (UNIX)
Expand Down
8 changes: 6 additions & 2 deletions 3rdparty/meson-compiler.ini.in
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
[constants]
common_args = ['-I@CMAKE_PREFIX_PATH@/include']
common_link_args = ['-L@CMAKE_PREFIX_PATH@/lib']
cross_compile_args = @_cross_compile_flags@
cross_link_args = @_cross_linker_flags@

[binaries]
c = '@CMAKE_C_COMPILER@'
cpp = '@CMAKE_CXX_COMPILER@'
c = ['@CMAKE_C_COMPILER@'] + cross_compile_args
cpp = ['@CMAKE_CXX_COMPILER@'] + cross_compile_args
c_ld = ['@CMAKE_LINKER@'] + cross_link_args
cpp_ld = ['@CMAKE_LINKER@'] + cross_link_args
ar = '@CMAKE_AR@'
strip = '@CMAKE_STRIP@'
pkgconfig = '@PKG_CONFIG_EXECUTABLE@'
Expand Down

0 comments on commit 01af6cd

Please sign in to comment.