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}/itk
111 GIT_REPOSITORY git://itk.org/ITK.git
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}/${proj}
124 -DCMAKE_BUILD_TYPE:STRING=${build_type}
125 -DBUILD_SHARED_LIBS:BOOL=OFF
126 -DBUILD_EXAMPLES:BOOL=OFF
127 -DBUILD_TESTING:BOOL=OFF
129 SET(ITK_DIR ${build_prefix}/ITK)
130 #=========================================================
132 #=========================================================
134 SET(VV_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
136 SET(VV_CMAKE_CXX_FLAGS "${VV_CMAKE_CXX_FLAGS} /bigobj")
139 SET(VV_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
140 if(CMAKE_COMPILER_IS_GNUCXX)
141 SET(VV_CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
142 endif(CMAKE_COMPILER_IS_GNUCXX)
144 SET(MAKE_COMMAND "make")
146 SET(MAKE_COMMAND "nmake")
152 SOURCE_DIR ${source_prefix}/vv
153 GIT_REPOSITORY git://git.creatis.insa-lyon.fr/clitk
154 INSTALL_COMMAND ${MAKE_COMMAND} package
156 -DQT_QMAKE_EXECUTABLE:FILEPATH=${qmake_executable}
157 -DITK_DIR:PATH=${ITK_DIR}
158 -DVTK_DIR:PATH=${VTK_DIR}
159 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
160 -DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
161 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
162 -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
163 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
164 -DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
165 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
166 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
167 -DCMAKE_CXX_FLAGS:STRING=${VV_CMAKE_CXX_FLAGS}
168 -DCMAKE_EXE_LINKER_FLAGS:STRING=${VV_CMAKE_EXE_LINKER_FLAGS}
169 -DCMAKE_INSTALL_PREFIX:PATH=${install_prefix}/${proj}
170 -DCMAKE_BUILD_TYPE:STRING=${build_type}
171 -DBUILD_SHARED_LIBS:BOOL=OFF
172 -DBUILD_TESTING:BOOL=OFF
174 #=========================================================