]> Creatis software - clitk.git/blobdiff - superbuild/CMakeLists.txt
First version of the superbuild CMakeLists.txt.
[clitk.git] / superbuild / CMakeLists.txt
diff --git a/superbuild/CMakeLists.txt b/superbuild/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f4727a8
--- /dev/null
@@ -0,0 +1,170 @@
+cmake_minimum_required(VERSION 2.8)
+cmake_policy(VERSION 2.8)
+
+# set a default build type if it is undefined, then make sure it goes in the cache
+if(NOT CMAKE_BUILD_TYPE)
+  set(CMAKE_BUILD_TYPE Release)
+endif()
+set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Build configuration type" FORCE)
+set(build_type ${CMAKE_BUILD_TYPE})
+
+#=========================================================
+MACRO (DD in)
+    MESSAGE(${in}=${${in}})
+ENDMACRO(DD)
+#=========================================================
+
+project(SuperBuild_VV)
+
+if(MSVC)
+  set(CMAKE_C_FLAGS_DEBUG          "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
+  set(CMAKE_C_FLAGS_MINSIZEREL     "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
+  set(CMAKE_C_FLAGS_RELEASE        "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "" FORCE)
+  set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
+
+  set(CMAKE_CXX_FLAGS_DEBUG          "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
+  set(CMAKE_CXX_FLAGS_MINSIZEREL     "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
+  set(CMAKE_CXX_FLAGS_RELEASE        "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "" FORCE)
+  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
+endif(MSVC)
+
+include(ExternalProject)
+
+set(base "${CMAKE_BINARY_DIR}")
+set_property(DIRECTORY PROPERTY EP_BASE ${base})
+set(source_prefix ${base}/Source)
+set(build_prefix ${base}/Build)
+set(install_prefix ${base}/Install)
+
+find_package(Git REQUIRED)
+
+#=========================================================
+# QT
+SET(QtWinSpecFiles "${source_prefix}/qt/mkspecs/win32-msvc2003/qmake.conf";
+                   "${source_prefix}/qt/mkspecs/win32-msvc2005/qmake.conf";
+                   "${source_prefix}/qt/mkspecs/win32-msvc2008/qmake.conf";
+                   "${source_prefix}/qt/mkspecs/win32-msvc2010/qmake.conf")
+ExternalProject_Add(
+  QT
+  SOURCE_DIR ${source_prefix}/qt
+  GIT_REPOSITORY git://gitorious.org/qt/qt.git
+  GIT_TAG v4.8.3
+  PATCH_COMMAND sed -i "s/\\-MD/-MT/g" ${QtWinSpecFiles}
+  CONFIGURE_COMMAND ${source_prefix}/qt/configure -confirm-license
+                                                  -static 
+                                                  -fast
+                                                  -opensource
+                                                  -release
+                                                  -prefix ${build_prefix}/QT
+                                                  -nomake examples
+                                                  -nomake demos
+                                                  -qt-libpng
+                                                  -no-libtiff
+                                                  -no-libjpeg
+                                                  -no-libmng
+  INSTALL_COMMAND ""
+)
+SET(qmake_executable "${build_prefix}/QT/bin/qmake")
+#=========================================================
+
+#=========================================================
+# VTK
+SET(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${VTK_CMAKE_CXX_STANDARD_LIBRARIES}")
+IF(MSVC)
+  SET(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${VTK_CMAKE_CXX_STANDARD_LIBRARIES} Imm32.lib Winmm.lib Ws2_32.lib")
+ENDIF(MSVC)
+ExternalProject_Add(
+  VTK 
+  DEPENDS QT
+  SOURCE_DIR ${source_prefix}/vtk
+  GIT_REPOSITORY git://vtk.org/VTK.git
+  GIT_TAG v5.10.0
+  INSTALL_COMMAND ""
+  CMAKE_ARGS
+    -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
+    -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
+    -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
+    -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
+    -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
+    -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
+    -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
+    -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
+    -DCMAKE_BUILD_TYPE:STRING=${build_type}
+    -DBUILD_SHARED_LIBS:BOOL=OFF
+    -DBUILD_EXAMPLES:BOOL=OFF
+    -DBUILD_TESTING:BOOL=OFF
+    -DVTK_USE_QT:BOOL=ON
+    -DVTK_USE_QVTK_QTOPENGL:BOOL=ON
+    -DCMAKE_CXX_STANDARD_LIBRARIES:STRING=${VTK_CMAKE_CXX_STANDARD_LIBRARIES}
+)
+SET(VTK_DIR ${build_prefix}/VTK)
+#=========================================================
+
+#=========================================================
+# ITK
+ExternalProject_Add(
+  ITK
+  SOURCE_DIR ${source_prefix}/itk
+  GIT_REPOSITORY git://itk.org/ITK.git
+  GIT_TAG v4.2.0
+  INSTALL_COMMAND ""
+  CMAKE_ARGS
+    -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
+    -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
+    -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
+    -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
+    -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
+    -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
+    -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
+    -DCMAKE_BUILD_TYPE:STRING=${build_type}
+    -DBUILD_SHARED_LIBS:BOOL=OFF
+    -DBUILD_EXAMPLES:BOOL=OFF
+    -DBUILD_TESTING:BOOL=OFF
+)
+SET(ITK_DIR ${build_prefix}/ITK)
+#=========================================================
+
+#=========================================================
+# VV
+SET(VV_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+if(MSVC)
+  SET(VV_CMAKE_CXX_FLAGS "${VV_CMAKE_CXX_FLAGS} /bigobj")
+endif(MSVC)
+
+SET(VV_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
+if(CMAKE_COMPILER_IS_GNUCXX)
+  SET(VV_CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
+endif(CMAKE_COMPILER_IS_GNUCXX)
+
+ExternalProject_Add(
+  VV
+  DEPENDS QT VTK ITK
+  SOURCE_DIR ${source_prefix}/vv
+  GIT_REPOSITORY git://git.creatis.insa-lyon.fr/clitk
+  GIT_TAG HEAD
+  INSTALL_COMMAND ""
+  CMAKE_ARGS
+    -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
+    -DITK_DIR:PATH=${ITK_DIR}
+    -DVTK_DIR:PATH=${VTK_DIR}
+    -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
+    -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
+    -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
+    -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
+    -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
+    -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
+    -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_CXX_FLAGS:STRING=${VV_CMAKE_CXX_FLAGS}
+    -DCMAKE_EXE_LINKER_FLAGS:STRING=${VV_CMAKE_EXE_LINKER_FLAGS}
+    -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
+    -DCMAKE_BUILD_TYPE:STRING=${build_type}
+    -DBUILD_SHARED_LIBS:BOOL=OFF
+    -DBUILD_TESTING:BOOL=OFF
+)
+#=========================================================
+