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;${source_prefix}/qt/mkspecs/win32-msvc2005/qmake.conf;${source_prefix}/qt/mkspecs/win32-msvc2008/qmake.conf;${source_prefix}/qt/mkspecs/win32-msvc2010/qmake.conf")
46 SOURCE_DIR ${source_prefix}/qt
47 GIT_REPOSITORY git://gitorious.org/qt/qt.git
49 PATCH_COMMAND sed -i "s/\\-MD/-MT/g" ${QtWinSpecFiles}
50 CONFIGURE_COMMAND ${source_prefix}/qt/configure -confirm-license
55 -prefix ${build_prefix}/QT
65 SET(qmake_executable "${build_prefix}/QT/bin/qmake")
66 #=========================================================
68 #=========================================================
70 SET(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES}")
72 SET(VTK_CMAKE_CXX_STANDARD_LIBRARIES "${VTK_CMAKE_CXX_STANDARD_LIBRARIES} Imm32.lib Winmm.lib Ws2_32.lib")
77 SOURCE_DIR ${source_prefix}/vtk
78 GIT_REPOSITORY git://vtk.org/VTK.git
82 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
83 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
84 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
85 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
86 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
87 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
88 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
89 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
90 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
91 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
92 -DCMAKE_BUILD_TYPE:STRING=${build_type}
93 -DBUILD_SHARED_LIBS:BOOL=OFF
94 -DBUILD_EXAMPLES:BOOL=OFF
95 -DBUILD_TESTING:BOOL=OFF
97 -DVTK_USE_QVTK_QTOPENGL:BOOL=ON
98 -DCMAKE_CXX_STANDARD_LIBRARIES:STRING=${VTK_CMAKE_CXX_STANDARD_LIBRARIES}
100 SET(VTK_DIR ${build_prefix}/VTK)
101 #=========================================================
103 #=========================================================
107 SOURCE_DIR ${source_prefix}/gdcm
108 GIT_REPOSITORY git://git.code.sf.net/p/gdcm/gdcm
112 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
113 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
114 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
115 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
116 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
117 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
118 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
119 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
120 -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PREFIX}
121 -DCMAKE_BUILD_TYPE:STRING=${build_type}
123 SET(GDCM_DIR ${build_prefix}/GDCM)
124 #=========================================================
126 #=========================================================
130 SOURCE_DIR ${source_prefix}/itk
131 GIT_REPOSITORY git://itk.org/ITK.git
135 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
136 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
137 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
138 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
139 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
140 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
141 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
142 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
143 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
144 -DCMAKE_BUILD_TYPE:STRING=${build_type}
145 -DBUILD_SHARED_LIBS:BOOL=OFF
146 -DBUILD_EXAMPLES:BOOL=OFF
147 -DBUILD_TESTING:BOOL=OFF
149 SET(ITK_DIR ${build_prefix}/ITK)
150 #=========================================================
152 #=========================================================
154 SET(VV_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
156 SET(VV_CMAKE_CXX_FLAGS "${VV_CMAKE_CXX_FLAGS} /bigobj")
159 SET(VV_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
160 if(CMAKE_COMPILER_IS_GNUCXX)
161 SET(VV_CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
162 endif(CMAKE_COMPILER_IS_GNUCXX)
164 SET(MAKE_COMMAND "make")
166 SET(MAKE_COMMAND "nmake")
171 DEPENDS QT VTK ITK GDCM
172 SOURCE_DIR ${source_prefix}/vv
173 GIT_REPOSITORY git://git.creatis.insa-lyon.fr/clitk
174 INSTALL_DIR ${install_prefix}
175 INSTALL_COMMAND make install
177 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
178 -DGDCM_DIR:PATH=${GDCM_DIR}
179 -DITK_DIR:PATH=${ITK_DIR}
180 -DVTK_DIR:PATH=${VTK_DIR}
181 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
182 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
183 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
184 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
185 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
186 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
187 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
188 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
189 -DCMAKE_CXX_FLAGS:STRING=${VV_CMAKE_CXX_FLAGS}
190 -DCMAKE_EXE_LINKER_FLAGS:STRING=${VV_CMAKE_EXE_LINKER_FLAGS}
191 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
192 -DCMAKE_BUILD_TYPE:STRING=${build_type}
193 -DBUILD_SHARED_LIBS:BOOL=OFF
194 -DBUILD_TESTING:BOOL=OFF
196 #=========================================================