forked from InsightSoftwareConsortium/ITK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
itkWrapSetup.cmake
80 lines (64 loc) · 2.84 KB
/
itkWrapSetup.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
OPTION(USE_WRAP_ITK "Build external languages support" OFF)
MARK_AS_ADVANCED(USE_WRAP_ITK)
IF(USE_WRAP_ITK)
MESSAGE("WrapITK is an experimental system for wrapping ITK. It is tested on Linux, Mac OS and Solaris, but is known to have some problems on some Windows platforms.")
# required for the FlatStructuringElement to be included.
# without that, the external projects won't build
# TODO: remove this check once FlatStructuringElement will be moved out of
# the review directory
IF(NOT ITK_USE_REVIEW)
MESSAGE(SEND_ERROR "WrapITK requires ITK_USE_REVIEW to be ON.")
ENDIF(NOT ITK_USE_REVIEW)
ENDIF(USE_WRAP_ITK)
#-----------------------------------------------------------------------------
# wrapper config
OPTION(ITK_CSWIG_TCL "Build cswig Tcl wrapper support (requires CableSwig)." OFF)
OPTION(ITK_CSWIG_PYTHON "Build cswig Python wrapper support (requires CableSwig)." OFF)
OPTION(ITK_CSWIG_JAVA "Build cswig Java wrapper support " OFF)
# perl support does not work, contact bill hoffman at kitware
# if you are interested in perl wrapping. It is close, but
# not there yet.
#OPTION(ITK_CSWIG_PERL "Build cswig Perl wrapper support " OFF)
#-----------------------------------------------------------------------------
# Do we need CableSwig?
SET(ITK_NEED_CableSwig 0)
IF(USE_WRAP_ITK)
SET(ITK_NEED_CableSwig 1)
ENDIF(USE_WRAP_ITK)
IF(ITK_CSWIG_TCL)
SET(ITK_NEED_CableSwig 1)
ENDIF(ITK_CSWIG_TCL)
IF(ITK_CSWIG_PYTHON)
SET(ITK_NEED_CableSwig 1)
ENDIF(ITK_CSWIG_PYTHON)
IF(ITK_CSWIG_JAVA)
SET(ITK_NEED_CableSwig 1)
ENDIF(ITK_CSWIG_JAVA)
IF(ITK_CSWIG_PERL)
SET(ITK_NEED_CableSwig 1)
ENDIF(ITK_CSWIG_PERL)
IF(ITK_NEED_CableSwig)
IF(NOT BUILD_SHARED_LIBS)
MESSAGE(FATAL_ERROR "Wrapping requires a shared build, change BUILD_SHARED_LIBS to ON")
ENDIF(NOT BUILD_SHARED_LIBS)
# Search first if CableSwig is in the ITK source tree
IF(EXISTS ${ITK_SOURCE_DIR}/Utilities/CableSwig)
SET(CMAKE_MODULE_PATH ${ITK_SOURCE_DIR}/Utilities/CableSwig/SWIG/CMake)
# CableSwig is included in the source distribution.
SET(ITK_BUILD_CABLESWIG 1)
SET(CableSwig_DIR ${ITK_BINARY_DIR}/Utilities/CableSwig CACHE PATH "CableSwig_DIR: The directory containing CableSwigConfig.cmake.")
SET(CableSwig_FOUND 1)
SET(CableSwig_INSTALL_ROOT ${ITK_INSTALL_LIB_DIR}/CSwig)
INCLUDE(${CableSwig_DIR}/CableSwigConfig.cmake OPTIONAL)
SUBDIRS(Utilities/CableSwig)
ELSE(EXISTS ${ITK_SOURCE_DIR}/Utilities/CableSwig)
# If CableSwig is not in the source tree,
# then try to find a binary build of CableSwig
FIND_PACKAGE(CableSwig)
SET(CMAKE_MODULE_PATH ${CableSwig_DIR}/SWIG/CMake)
ENDIF(EXISTS ${ITK_SOURCE_DIR}/Utilities/CableSwig)
IF(NOT CableSwig_FOUND)
# We have not found CableSwig. Complain.
MESSAGE(FATAL_ERROR "CableSwig is required for CSwig Wrapping.")
ENDIF(NOT CableSwig_FOUND)
ENDIF(ITK_NEED_CableSwig)