1 cmake_minimum_required(VERSION 2.8)
2 cmake_policy(VERSION 2.8)
4 # set a default build type if it is undefined, then make sure it goes in the cache
5 if(NOT CMAKE_BUILD_TYPE)
6 set(CMAKE_BUILD_TYPE Release)
8 set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Build configuration type" FORCE)
9 set(build_type ${CMAKE_BUILD_TYPE})
11 #=========================================================
13 MESSAGE(${in}=${${in}})
15 #=========================================================
17 project(SuperBuild_VV)
20 set(CMAKE_C_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
21 set(CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
22 set(CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "" FORCE)
23 set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
25 set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "" FORCE)
26 set(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
27 set(CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "" FORCE)
28 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "" FORCE)
31 include(ExternalProject)
33 set(base "${CMAKE_BINARY_DIR}")
34 set_property(DIRECTORY PROPERTY EP_BASE ${base})
35 set(source_prefix ${base}/Source)
36 set(build_prefix ${base}/Build)
37 set(install_prefix ${base}/Install)
39 find_package(Git REQUIRED)
41 #=========================================================
43 SET(QtWinSpecFiles "${source_prefix}/qt/mkspecs/win32-msvc2003/qmake.conf";
44 "${source_prefix}/qt/mkspecs/win32-msvc2005/qmake.conf";
45 "${source_prefix}/qt/mkspecs/win32-msvc2008/qmake.conf";
46 "${source_prefix}/qt/mkspecs/win32-msvc2010/qmake.conf")
49 SOURCE_DIR ${source_prefix}/qt
50 GIT_REPOSITORY git://gitorious.org/qt/qt.git
52 PATCH_COMMAND sed -i "s/\\-MD/-MT/g" ${QtWinSpecFiles}
53 CONFIGURE_COMMAND ${source_prefix}/qt/configure -confirm-license
58 -prefix ${build_prefix}/QT
68 SET(qmake_executable "${build_prefix}/QT/bin/qmake")
69 #=========================================================
71 #=========================================================
73 SET(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES}")
75 SET(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${VTK_CMAKE_CXX_STANDARD_LIBRARIES} Imm32.lib Winmm.lib Ws2_32.lib")
80 SOURCE_DIR ${source_prefix}/vtk
81 GIT_REPOSITORY git://vtk.org/VTK.git
85 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
86 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
87 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
88 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
89 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
90 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
91 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
92 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
93 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
94 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
95 -DCMAKE_BUILD_TYPE:STRING=${build_type}
96 -DBUILD_SHARED_LIBS:BOOL=OFF
97 -DBUILD_EXAMPLES:BOOL=OFF
98 -DBUILD_TESTING:BOOL=OFF
100 -DVTK_USE_QVTK_QTOPENGL:BOOL=ON
101 -DCMAKE_CXX_STANDARD_LIBRARIES:STRING=${VTK_CMAKE_CXX_STANDARD_LIBRARIES}
103 SET(VTK_DIR ${build_prefix}/VTK)
104 #=========================================================
106 #=========================================================
110 SOURCE_DIR ${source_prefix}/gdcm
111 GIT_REPOSITORY git://git.code.sf.net/p/gdcm/gdcm
115 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
116 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
117 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
118 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
119 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
120 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
121 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
122 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
123 -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}
124 -DCMAKE_BUILD_TYPE:STRING=${build_type}
126 SET(GDCM_DIR ${build_prefix}/GDCM)
127 #=========================================================
129 #=========================================================
133 SOURCE_DIR ${source_prefix}/itk
134 GIT_REPOSITORY git://itk.org/ITK.git
138 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
139 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
140 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
141 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
142 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
143 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
144 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
145 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
146 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
147 -DCMAKE_BUILD_TYPE:STRING=${build_type}
148 -DBUILD_SHARED_LIBS:BOOL=OFF
149 -DBUILD_EXAMPLES:BOOL=OFF
150 -DBUILD_TESTING:BOOL=OFF
152 SET(ITK_DIR ${build_prefix}/ITK)
153 #=========================================================
155 #=========================================================
157 SET(VV_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
159 SET(VV_CMAKE_CXX_FLAGS "${VV_CMAKE_CXX_FLAGS} /bigobj")
162 SET(VV_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
163 if(CMAKE_COMPILER_IS_GNUCXX)
164 SET(VV_CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
165 endif(CMAKE_COMPILER_IS_GNUCXX)
167 SET(MAKE_COMMAND "make")
169 SET(MAKE_COMMAND "nmake")
174 DEPENDS QT VTK ITK GDCM
175 SOURCE_DIR ${source_prefix}/vv
176 GIT_REPOSITORY git://git.creatis.insa-lyon.fr/clitk
177 INSTALL_DIR ${install_prefix}
178 INSTALL_COMMAND make install
180 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
181 -DGDCM_DIR:PATH=${GDCM_DIR}
182 -DITK_DIR:PATH=${ITK_DIR}
183 -DVTK_DIR:PATH=${VTK_DIR}
184 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
185 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
186 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
187 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
188 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
189 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
190 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
191 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
192 -DCMAKE_CXX_FLAGS:STRING=${VV_CMAKE_CXX_FLAGS}
193 -DCMAKE_EXE_LINKER_FLAGS:STRING=${VV_CMAKE_EXE_LINKER_FLAGS}
194 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
195 -DCMAKE_BUILD_TYPE:STRING=${build_type}
196 -DBUILD_SHARED_LIBS:BOOL=OFF
197 -DBUILD_TESTING:BOOL=OFF
199 #=========================================================