summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAlexander Soldatov <soldatov.a@samsung.com>2018-02-08 20:26:59 +0300
committerAlexander Soldatov <soldatov.a@samsung.com>2018-02-08 20:26:59 +0300
commitba61f968ff48f2aec448bb6d1448e3d56310f2e7 (patch)
treeb07a13c82ff22b772a5a3537e168f697ee4884fe /CMakeLists.txt
parent7b169b9a7ed2e0e1eeb668e9f1c2a049ec34ca66 (diff)
downloadcoreclr-ba61f968ff48f2aec448bb6d1448e3d56310f2e7.tar.gz
coreclr-ba61f968ff48f2aec448bb6d1448e3d56310f2e7.tar.bz2
coreclr-ba61f968ff48f2aec448bb6d1448e3d56310f2e7.zip
[Unix] Passing extra CMake args
Added support for compiler and linker additional arguments in CMake. By using CLR_ADDITIONAL_LINKER_FLAGS and CLR_ADDITIONAL_COMPILER_OPTIONS it's possible to pass toolchain options without changing Makefile.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt12
1 files changed, 12 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e59995ddcf..7d5d501f1b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -450,6 +450,18 @@ elseif (CLR_CMAKE_PLATFORM_UNIX)
endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED)
endif(WIN32)
+# CLR_ADDITIONAL_LINKER_FLAGS - used for passing additional arguments to linker
+# CLR_ADDITIONAL_COMPILER_OPTIONS - used for passing additional arguments to compiler
+#
+# For example:
+# ./build-native.sh cmakeargs "-DCLR_ADDITIONAL_COMPILER_OPTIONS=<...>" cmakeargs "-DCLR_ADDITIONAL_LINKER_FLAGS=<...>"
+#
+if(CLR_CMAKE_PLATFORM_UNIX)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CLR_ADDITIONAL_LINKER_FLAGS}")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CLR_ADDITIONAL_LINKER_FLAGS}" )
+ add_compile_options(${CLR_ADDITIONAL_COMPILER_OPTIONS})
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
if(CLR_CMAKE_PLATFORM_LINUX)
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--build-id=sha1")