summaryrefslogtreecommitdiff
path: root/Modules/Platform/BlueGeneP-base.cmake
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-05-05 21:11:35 +0200
committerBrad King <brad.king@kitware.com>2012-06-12 15:37:53 -0400
commit31d7a0f2e3a717435da9660bcb2c23654171afda (patch)
treee181c6d1cf90af21d9a06b31d511f2d20aff8600 /Modules/Platform/BlueGeneP-base.cmake
parent1ccbfdebb99b167e1da1d9aa8a072adaea6325c6 (diff)
downloadcmake-31d7a0f2e3a717435da9660bcb2c23654171afda.tar.gz
Add platform variables for position independent code flags
Store in new platform variables CMAKE_${lang}_COMPILE_OPTIONS_PIC CMAKE_${lang}_COMPILE_OPTIONS_PIE flags for position independent code generation. In almost all cases, this means duplication of the CMAKE_SHARED_LIBRARY_${lang}_FLAGS for the _PIC case and using the assumed pie equivalent for the _PIE case. Note that the GNU compiler has supported -fPIE since 3.4 and that there is no -fPIC on GNU for Windows or Cygwin. There is a possibility that the _PIE variables are not correct. However, as there is no backwards compatibility to be concerned about (as the POSITION_INDEPENDENT_CODE property is not used anywhere yet), the current state suffices.
Diffstat (limited to 'Modules/Platform/BlueGeneP-base.cmake')
-rw-r--r--Modules/Platform/BlueGeneP-base.cmake4
1 files changed, 4 insertions, 0 deletions
diff --git a/Modules/Platform/BlueGeneP-base.cmake b/Modules/Platform/BlueGeneP-base.cmake
index 926dbc01e3..c0241e19dd 100644
--- a/Modules/Platform/BlueGeneP-base.cmake
+++ b/Modules/Platform/BlueGeneP-base.cmake
@@ -85,11 +85,15 @@ set(CMAKE_DL_LIBS "dl")
macro(__BlueGeneP_set_dynamic_flags compiler_id lang)
if (${compiler_id} STREQUAL XL)
# Flags for XL compilers if we explicitly detected XL
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-qpic")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-qpie")
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic")
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink")
set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc")
else()
# Assume flags for GNU compilers (if the ID is GNU *or* anything else).
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-dynamic")