Browse Source

Merge branch 'remove-ep-common-args'

* remove-ep-common-args:
  Fix DCMTK linking issue by explicitly passing fPIC flag
  External Project - Explicitly specify C/CXX flags, build type and install prefix
Jean-Christophe Fillion-Robin 13 years ago
parent
commit
919647471a

+ 19 - 1
CMakeExternals/DCMTK.cmake

@@ -28,6 +28,21 @@ IF(${add_project})
         -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}
         -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET})
     endif()
+    
+    #-----------------------------------------------------------------------------
+    # HACK Waiting upstream DCMTK is fixed, specify -fPIC here.
+    #      See http://public.kitware.com/pipermail/ctk-developers/2011-August/000725.html
+    #-----------------------------------------------------------------------------
+    set(dcmtk_cxx_flags ${ep_common_cxx_flags})
+    set(dcmtk_c_flags ${ep_common_c_flags})
+    # To fix compilation problem: relocation R_X86_64_32 against `a local symbol' can not be
+    # used when making a shared object; recompile with -fPIC
+    # See http://www.cmake.org/pipermail/cmake/2007-May/014350.html
+    #
+    IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+      set(dcmtk_cxx_flags "${ep_common_cxx_flags} -fPIC")
+      set(dcmtk_c_flags "${ep_common_c_flags} -fPIC")
+    ENDIF()
 
     ExternalProject_Add(${proj}
       SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}
@@ -38,7 +53,10 @@ IF(${add_project})
       CMAKE_GENERATOR ${gen}
       BUILD_COMMAND ""
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${dcmtk_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${dcmtk_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DBUILD_TESTING:BOOL=OFF
         -DDCMTK_BUILD_APPS:BOOL=ON # Build also dmctk tools (movescu, storescp, ...)

+ 4 - 1
CMakeExternals/ITK.cmake

@@ -36,7 +36,10 @@ IF(${add_project})
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DBUILD_TESTING:BOOL=OFF
         -DBUILD_EXAMPLES:BOOL=OFF

+ 4 - 1
CMakeExternals/KWStyle.cmake

@@ -33,7 +33,10 @@ IF(CTK_USE_KWSTYLE)
       CVS_MODULE "KWStyle"
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DBUILD_TESTING:BOOL=OFF
       DEPENDS

+ 4 - 1
CMakeExternals/Log4Qt.cmake

@@ -37,7 +37,10 @@ IF(${add_project})
       CMAKE_GENERATOR ${gen}
       INSTALL_COMMAND ""
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        #-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags} # Not used
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
       DEPENDS

+ 4 - 1
CMakeExternals/OpenIGTLink.cmake

@@ -36,7 +36,10 @@ IF(${add_project})
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
       DEPENDS
         ${proj_DEPENDENCIES}

+ 4 - 1
CMakeExternals/PythonQt.cmake

@@ -59,7 +59,10 @@ IF(${add_project})
       CMAKE_GENERATOR ${gen}
       BUILD_COMMAND ""
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        #-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags} # Not used
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
         -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}

+ 8 - 2
CMakeExternals/PythonQtGenerator.cmake

@@ -49,7 +49,10 @@ IF(CTK_WRAP_PYTHONQT_FULL)
         INSTALL_COMMAND ""
         SOURCE_DIR ${CMAKE_BINARY_DIR}/PythonQt/generator
         CMAKE_ARGS
-          ${ep_common_args}
+          -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+          -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+          -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+          -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
           ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
           -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
         DEPENDS
@@ -67,7 +70,10 @@ IF(CTK_WRAP_PYTHONQT_FULL)
         INSTALL_COMMAND ""
         SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}/generator
         CMAKE_ARGS
-          ${ep_common_args}
+          -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+          -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+          -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+          -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
           ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
           -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
         )

+ 4 - 1
CMakeExternals/QtSOAP.cmake

@@ -38,7 +38,10 @@ IF(${add_project})
       CMAKE_GENERATOR ${gen}
       INSTALL_COMMAND ""
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
       DEPENDS

+ 4 - 1
CMakeExternals/VTK.cmake

@@ -49,7 +49,10 @@ IF(${add_project} OR CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DBUILD_TESTING:BOOL=OFF
         ${additional_vtk_cmakevars}

+ 4 - 1
CMakeExternals/XIP.cmake

@@ -36,7 +36,10 @@ IF(${add_project})
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DBUILD_TESTING:BOOL=OFF
         -DHAS_VTK:BOOL=OFF

+ 4 - 1
CMakeExternals/ZMQ.cmake

@@ -37,7 +37,10 @@ IF(${add_project})
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
-        ${ep_common_args}
+        -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+        -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
+        -DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
+        -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
         ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
         -DBUILD_TESTING:BOOL=OFF
         -DBUILD_SHARED_LIBS:BOOL=ON 

+ 2 - 7
SuperBuild.cmake

@@ -78,14 +78,9 @@ INCLUDE(ctkMacroEmptyExternalProject)
 
 SET(ep_install_dir ${CMAKE_BINARY_DIR}/CMakeExternals/Install)
 set(ep_suffix      "-cmake")
-#SET(ep_parallelism_level)
-SET(ep_build_shared_libs ON)
-SET(ep_build_testing OFF)
 
-SET(ep_common_args
-  -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
-  -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-  )
+set(ep_common_c_flags "${CMAKE_C_FLAGS_INIT} ${ADDITIONAL_C_FLAGS}")
+set(ep_common_cxx_flags "${CMAKE_CXX_FLAGS_INIT} ${ADDITIONAL_CXX_FLAGS}")
 
 # Compute -G arg for configuring external projects with the same CMake generator:
 IF(CMAKE_EXTRA_GENERATOR)