Mercurial > hg > orthanc-stl
annotate Resources/CMake/LibVtkConfiguration.cmake @ 16:609ba59d1c54
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 11 Sep 2023 22:26:29 +0200 |
parents | 0c324112d4cc |
children | 961d7f13759e |
rev | line source |
---|---|
1
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 # SPDX-FileCopyrightText: 2023 Sebastien Jodogne, UCLouvain, Belgium |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 # SPDX-License-Identifier: GPL-3.0-or-later |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 # STL plugin for Orthanc |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 # Copyright (C) 2023 Sebastien Jodogne, UCLouvain, Belgium |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 # |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 # This program is free software: you can redistribute it and/or |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 # modify it under the terms of the GNU General Public License as |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 # published by the Free Software Foundation, either version 3 of the |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 # License, or (at your option) any later version. |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 # |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 # This program is distributed in the hope that it will be useful, but |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 # WITHOUT ANY WARRANTY; without even the implied warranty of |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 # General Public License for more details. |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 # |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 # You should have received a copy of the GNU General Public License |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 if (NOT STATIC_BUILD AND USE_SYSTEM_VTK) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 find_package(VTK REQUIRED COMPONENTS |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 vtkCommonDataModel |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 vtkFiltersCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 vtkImagingCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 include_directories(${VTK_INCLUDE_DIRS}) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 # Add a void target |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 add_custom_target(VTK) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 else() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
35 set(VTK_MAJOR 7) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
36 set(VTK_MINOR 1) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
37 set(VTK_REVISION 1) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 set(VTK_MD5 "daee43460f4e95547f0635240ffbc9cb") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
39 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 set(VTK_SOURCES_DIR "${CMAKE_BINARY_DIR}/VTK-${VTK_MAJOR}.${VTK_MINOR}.${VTK_REVISION}") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
41 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
42 DownloadPackage( |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 "${VTK_MD5}" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 "https://orthanc.uclouvain.be/third-party-downloads/VTK-${VTK_MAJOR}.${VTK_MINOR}.${VTK_REVISION}.tar.gz" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 "${VTK_SOURCES_DIR}") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 if (CMAKE_TOOLCHAIN_FILE) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 # Take absolute path to the toolchain |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 get_filename_component(TMP ${CMAKE_TOOLCHAIN_FILE} REALPATH BASE ${CMAKE_SOURCE_DIR}/..) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 list(APPEND VTKCMakeFlags |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 -DCMAKE_TOOLCHAIN_FILE=${TMP} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 -DLSB_CC=${LSB_CC} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 -DLSB_CXX=${LSB_CXX} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 endif() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 cmake_host_system_information(RESULT NumberOfPhysicalCores QUERY NUMBER_OF_PHYSICAL_CORES) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 include(ExternalProject) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 if (CMAKE_CROSSCOMPILING) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 # First, generate the "VTKCompileToolsConfig.cmake" file on the host |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 # computer. This is necessary before cross-compiling. Explanations: |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 # https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#cross-compiling-a-complex-project-vtk |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 externalproject_add(VTKCompileTools |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 SOURCE_DIR "${VTK_SOURCES_DIR}" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 CMAKE_ARGS |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 -DCMAKE_CXX_COMPILER=g++ |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 -DCMAKE_C_COMPILER=gcc |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 BUILD_COMMAND |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 ${CMAKE_COMMAND} --build <BINARY_DIR> --config <CONFIG> --parallel ${NumberOfPhysicalCores} -t |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 VTKCompileToolsConfig.cmake |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 INSTALL_COMMAND "" # Skip the install step |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 ExternalProject_Get_Property(VTKCompileTools binary_dir) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 list(APPEND VTKCMakeFlags |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 -DVTKCompileTools_DIR=${binary_dir} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 list(APPEND VTKCMakeFlags |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 -DCMAKE_REQUIRE_LARGE_FILE_SUPPORT=ON |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 -DCMAKE_REQUIRE_LARGE_FILE_SUPPORT__TRYRUN_OUTPUT="" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 -DKWSYS_LFS_WORKS=ON |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 -DKWSYS_LFS_WORKS__TRYRUN_OUTPUT="" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 -DFILE_OFFSET_BITS=64 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 |
14 | 92 # This disables HDF5, which is not used in Orthanc |
13 | 93 -DVTK_USE_SYSTEM_HDF5=OFF |
14 | 94 |
95 # Some raw guesses to make CMake happy, could be incorrect! | |
96 -DHAVE_IOEO_EXITCODE=0 | |
15 | 97 -DH5_FP_TO_INTEGER_OVERFLOW_WORKS_RUN=0 |
98 -DH5_FP_TO_INTEGER_OVERFLOW_WORKS_RUN__TRYRUN_OUTPUT= | |
99 -DH5_FP_TO_ULLONG_ACCURATE_RUN=0 | |
100 -DH5_FP_TO_ULLONG_ACCURATE_RUN__TRYRUN_OUTPUT= | |
101 -DH5_FP_TO_ULLONG_RIGHT_MAXIMUM_RUN=0 | |
102 -DH5_FP_TO_ULLONG_RIGHT_MAXIMUM_RUN__TRYRUN_OUTPUT= | |
14 | 103 -DH5_LDOUBLE_TO_INTEGER_WORKS_RUN=0 |
15 | 104 -DH5_LDOUBLE_TO_INTEGER_WORKS_RUN__TRYRUN_OUTPUT= |
105 -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 | |
106 -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT= | |
14 | 107 -DH5_LDOUBLE_TO_UINT_ACCURATE_RUN=0 |
15 | 108 -DH5_LDOUBLE_TO_UINT_ACCURATE_RUN__TRYRUN_OUTPUT= |
109 -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 | |
110 -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT= | |
111 -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 | |
112 -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT= | |
16 | 113 -DH5_PRINTF_LL_WIDTH="unknown" |
14 | 114 -DH5_ULLONG_TO_LDOUBLE_PRECISION_RUN=0 |
16 | 115 -DH5_ULLONG_TO_LDOUBLE_PRECISION_RUN=0 |
116 -DH5_ULLONG_TO_LDOUBLE_PRECISION_RUN__TRYRUN_OUTPUT= | |
15 | 117 -DH5_ULONG_TO_FLOAT_ACCURATE_RUN=0 |
118 -DH5_ULONG_TO_FLOAT_ACCURATE_RUN__TRYRUN_OUTPUT= | |
119 -DHDF5_PRINTF_LL_TEST_RUN=0 | |
120 -DHDF5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT= | |
1
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
121 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
122 else() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
123 add_custom_target(VTKCompileTools) # Empty target |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 endif() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
125 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 if (CMAKE_COMPILER_IS_GNUCXX OR |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 CMAKE_CXX_COMPILER_ID STREQUAL "Clang") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 # The following flag is necessary to statically link VTK within |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
129 # the shared library containing the plugin |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 set(Flags "-fPIC") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 else() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 set(Flags "") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 endif() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 externalproject_add(VTK |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 SOURCE_DIR "${VTK_SOURCES_DIR}" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
138 CMAKE_ARGS |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
139 ${VTKCMakeFlags} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
140 -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 -DBUILD_SHARED_LIBS=OFF |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 -DVTK_Group_Rendering=OFF |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} ${Flags}" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
147 "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} ${Flags}" |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
151 BUILD_COMMAND |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 ${CMAKE_COMMAND} --build <BINARY_DIR> --config <CONFIG> --parallel ${NumberOfPhysicalCores} -t |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
153 vtkCommonCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
154 vtkCommonDataModel |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 vtkCommonMath |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 vtkCommonMisc |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 vtkCommonSystem |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
158 vtkCommonTransforms |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 vtkFiltersCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 vtkFiltersPoints |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
161 vtkImagingCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 EXCLUDE_FROM_ALL TRUE |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 INSTALL_COMMAND "" # Skip the install step |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
167 DEPENDS VTKCompileTools |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
168 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
169 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
170 if(MSVC) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 set(Suffix ".lib") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 set(Prefix "") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 else() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 set(Suffix ".a") |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 list(GET CMAKE_FIND_LIBRARY_PREFIXES 0 Prefix) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 endif() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
178 foreach(module IN ITEMS |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
179 # WARNING: The order of the modules below *is* important! |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
180 ImagingCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
181 FiltersCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
182 CommonExecutionModel |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
183 CommonDataModel |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
184 CommonTransforms |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
185 CommonMath |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
186 CommonMisc |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
187 CommonSystem |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
188 CommonCore |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
189 sys |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
190 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
191 list(APPEND VTK_LIBRARIES |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
192 ${Prefix}vtk${module}-${VTK_MAJOR}.${VTK_MINOR}${Suffix} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
193 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
194 endforeach() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
195 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
196 ExternalProject_Get_Property(VTK binary_dir) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
197 ExternalProject_Get_Property(VTK source_dir) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
198 |
16 | 199 if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") |
200 # TODO - This looks very strange | |
201 link_directories(${binary_dir}/../Debug) | |
202 else() | |
203 link_directories(${binary_dir}/lib) | |
204 endif() | |
1
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
205 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
206 foreach(dir IN ITEMS |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
207 Common/Core |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
208 Common/DataModel |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
209 Common/ExecutionModel |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
210 Common/Misc |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
211 Filters/Core |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
212 IO/Image |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
213 Imaging/Core |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
214 Utilities/KWIML |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
215 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
216 include_directories( |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
217 ${source_dir}/${dir} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
218 ${binary_dir}/${dir} |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
219 ) |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
220 endforeach() |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
221 |
0f03a8a0bd6f
encoding of RT-STRUCT as STL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
222 endif() |