1 cmake_minimum_required(VERSION 2.8)
2 cmake_policy(VERSION 2.8)
6 message( FATAL_ERROR "This superbuild is not up to date, do not use." )
9 # set a default build type if it is undefined, then make sure it goes in the cache
10 if(NOT CMAKE_BUILD_TYPE)
11 set(CMAKE_BUILD_TYPE Release)
13 set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Build configuration type" FORCE)
14 set(build_type ${CMAKE_BUILD_TYPE})
16 #=========================================================
18 message(${in}=${${in}})
20 #=========================================================
22 project(SuperBuild_VV)
25 set(CMAKE_C_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
26 set(CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
27 set(CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "" FORCE)
28 set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
30 set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
31 set(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
32 set(CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "" FORCE)
33 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
36 include(ExternalProject)
38 set(base "${CMAKE_BINARY_DIR}")
39 set_property(DIRECTORY PROPERTY EP_BASE ${base})
40 set(source_prefix ${base}/Source)
41 set(build_prefix ${base}/Build)
42 set(install_prefix ${base}/Install)
44 find_package(Git REQUIRED)
47 #=========================================================
50 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")
51 set(WINPATCH "sed -i \"s/\\-MD/-MT/g\" ${QtWinSpecFiles}")
57 SOURCE_DIR ${source_prefix}/qt
58 GIT_REPOSITORY git://code.qt.io/qt/qt.git
60 PATCH_COMMAND ${WINPATCH}
61 CONFIGURE_COMMAND ${source_prefix}/qt/configure -confirm-license
66 -prefix ${build_prefix}/QT
76 set(qmake_executable "${build_prefix}/QT/bin/qmake")
80 find_package(qt4 REQUIRED)
83 #=========================================================
85 #=========================================================
87 set(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES}")
89 set(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${VTK_CMAKE_CXX_STANDARD_LIBRARIES} Imm32.lib Winmm.lib Ws2_32.lib")
93 DEPENDS ${VTK_DEPEND_QT}
94 SOURCE_DIR ${source_prefix}/vtk
95 GIT_REPOSITORY git://vtk.org/VTK.git
99 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
100 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
101 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
102 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
103 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
104 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
105 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
106 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
107 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
108 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
109 -DCMAKE_BUILD_TYPE:STRING=${build_type}
110 -DBUILD_SHARED_LIBS:BOOL=OFF
111 -DBUILD_EXAMPLES:BOOL=OFF
112 -DBUILD_TESTING:BOOL=OFF
114 -DVTK_USE_QVTK_QTOPENGL:BOOL=ON
115 -DCMAKE_CXX_STANDARD_LIBRARIES:STRING=${VTK_CMAKE_CXX_STANDARD_LIBRARIES}
117 set(VTK_DIR ${build_prefix}/VTK)
118 #=========================================================
120 #=========================================================
124 SOURCE_DIR ${source_prefix}/gdcm
125 GIT_REPOSITORY git://git.code.sf.net/p/gdcm/gdcm
129 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
130 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
131 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
132 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
133 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
134 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
135 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
136 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
137 -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}
138 -DCMAKE_BUILD_TYPE:STRING=${build_type}
140 set(GDCM_DIR ${build_prefix}/GDCM)
141 #=========================================================
143 #=========================================================
147 SOURCE_DIR ${source_prefix}/itk
148 GIT_REPOSITORY git://itk.org/ITK.git
152 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
153 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
154 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
155 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
156 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
157 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
158 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
159 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
160 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
161 -DCMAKE_BUILD_TYPE:STRING=${build_type}
162 -DBUILD_SHARED_LIBS:BOOL=OFF
163 -DBUILD_EXAMPLES:BOOL=OFF
164 -DBUILD_TESTING:BOOL=OFF
166 set(ITK_DIR ${build_prefix}/ITK)
167 #=========================================================
169 #=========================================================
171 set(VV_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
173 set(VV_CMAKE_CXX_FLAGS "${VV_CMAKE_CXX_FLAGS} /bigobj")
176 set(VV_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
177 if(CMAKE_COMPILER_IS_GNUCXX)
178 set(VV_CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
179 endif(CMAKE_COMPILER_IS_GNUCXX)
181 set(MAKE_COMMAND "make")
183 set(MAKE_COMMAND "nmake")
188 DEPENDS ${VTK_DEPEND_QT} VTK ITK GDCM
189 SOURCE_DIR ${source_prefix}/vv
190 GIT_REPOSITORY git://git.creatis.insa-lyon.fr/clitk
191 INSTALL_DIR ${install_prefix}
192 INSTALL_COMMAND make install
194 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
195 -DGDCM_DIR:PATH=${GDCM_DIR}
196 -DITK_DIR:PATH=${ITK_DIR}
197 -DVTK_DIR:PATH=${VTK_DIR}
198 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
199 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
200 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
201 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
202 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
203 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
204 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
205 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
206 -DCMAKE_CXX_FLAGS:STRING=${VV_CMAKE_CXX_FLAGS}
207 -DCMAKE_EXE_LINKER_FLAGS:STRING=${VV_CMAKE_EXE_LINKER_FLAGS}
208 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
209 -DCMAKE_BUILD_TYPE:STRING=${build_type}
210 -DBUILD_SHARED_LIBS:BOOL=OFF
211 -DBUILD_TESTING:BOOL=OFF
213 #=========================================================