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.
This commit is contained in:
Stephen Kelly
2012-05-05 21:11:35 +02:00
committed by Brad King
parent 1ccbfdebb9
commit 31d7a0f2e3
25 changed files with 80 additions and 8 deletions
+4
View File
@@ -1,6 +1,10 @@
IF(CMAKE_SYSTEM MATCHES "MP-RAS-02*.")
SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC)
SET(CMAKE_C_COMPILE_OPTIONS_PIE -K PIE)
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC")
ELSE(CMAKE_SYSTEM MATCHES "MP-RAS-02*.")
SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC)
SET(CMAKE_C_COMPILE_OPTIONS_PIE -K PIE)
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC")
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport")
ENDIF(CMAKE_SYSTEM MATCHES "MP-RAS-02*.")