You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
176 lines
7.0 KiB
176 lines
7.0 KiB
# VTK examples now require CMake 2.0 or higher.
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.0)
|
|
IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9)
|
|
ELSE(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9)
|
|
MESSAGE(FATAL_ERROR "VTKExamples requires CMake 2.0 or higher.")
|
|
ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9)
|
|
|
|
# Choose behavior based on whether we are building inside the VTK tree.
|
|
IF(VTK_BINARY_DIR)
|
|
# We are building in the VTK tree. Add tests for some examples.
|
|
# Test the build system examples.
|
|
IF(BUILD_TESTING)
|
|
# If multiple configuration types are available we must add the test
|
|
# in a way that will use the configuration given for testing. When
|
|
# CTest 2.1 and higher is used to drive the tests it evaluates the
|
|
# ADD_TEST commands stored in the test files using standard cmake
|
|
# language evaluation. The variable CTEST_CONFIGURATION_TYPE expands
|
|
# to the configuration specified for testing (Debug, Release, etc.).
|
|
# This variable must be stored in the test string and evaluated at
|
|
# testing time, so the dollar must be stored in a way that will not be
|
|
# evaluated immediately. In CMake 2.1 and higher this can be done
|
|
# with an escaped dollar but we must support older CMake versions
|
|
# syntactically. Since we do not know what tool will be used to drive
|
|
# the tests (Dart, CTest <= 2.0, CTest > 2.0, etc.) we have to have a
|
|
# special cache option "VTK_TEST_WITH_CTEST" to enable this feature.
|
|
# Dashboard maintainers will have to set this option to properly run
|
|
# these tests.
|
|
|
|
# Default to single-configuration behavior.
|
|
SET(VTK_EXAMPLE_TEST_CONFIG_TYPE)
|
|
SET(VTK_EXAMPLE_TEST_RUN_DIR "${EXECUTABLE_OUTPUT_PATH}")
|
|
|
|
# Enable multi-configuration behavior if support is available.
|
|
IF(CMAKE_CONFIGURATION_TYPES AND VTK_TEST_WITH_CTEST)
|
|
SET(DOLLAR "$")
|
|
IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.0)
|
|
SET(VTK_EXAMPLE_TEST_CONFIG_TYPE -C "${DOLLAR}{CTEST_CONFIGURATION_TYPE}")
|
|
SET(VTK_EXAMPLE_TEST_RUN_DIR "${EXECUTABLE_OUTPUT_PATH}/${DOLLAR}{CTEST_CONFIGURATION_TYPE}")
|
|
ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.0)
|
|
ENDIF(CMAKE_CONFIGURATION_TYPES AND VTK_TEST_WITH_CTEST)
|
|
|
|
# Add a test to build the vtkLocal example.
|
|
ADD_TEST(Example-vtkLocal ${CMAKE_CTEST_COMMAND}
|
|
${VTK_EXAMPLE_TEST_CONFIG_TYPE}
|
|
--build-and-test
|
|
${VTK_SOURCE_DIR}/Examples/Build/vtkLocal
|
|
${VTK_BINARY_DIR}/Examples/Build/vtkLocal
|
|
--build-two-config
|
|
--build-generator ${CMAKE_GENERATOR}
|
|
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
|
--build-project VTKLOCAL
|
|
--build-run-dir ${VTK_EXAMPLE_TEST_RUN_DIR}
|
|
--build-options -DVTK_DIR:PATH=${VTK_BINARY_DIR}
|
|
--test-command "${VTK_BINARY_DIR}/Examples/Build/vtkLocal/bin/vtkLocalTest"
|
|
)
|
|
|
|
# Add a test to build the vtkMy example.
|
|
ADD_TEST(Example-vtkMy ${CMAKE_CTEST_COMMAND}
|
|
${VTK_EXAMPLE_TEST_CONFIG_TYPE}
|
|
--build-and-test
|
|
${VTK_SOURCE_DIR}/Examples/Build/vtkMy
|
|
${VTK_BINARY_DIR}/Examples/Build/vtkMy
|
|
--build-two-config
|
|
--build-generator ${CMAKE_GENERATOR}
|
|
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
|
--build-project VTKMY
|
|
--build-run-dir ${VTK_EXAMPLE_TEST_RUN_DIR}
|
|
--build-options -DVTK_DIR:PATH=${VTK_BINARY_DIR}
|
|
--test-command "${VTK_BINARY_DIR}/Examples/Build/vtkMy/bin/vtkmyEx1"
|
|
)
|
|
ENDIF(BUILD_TESTING)
|
|
|
|
# Build the examples as a separate project using a custom target.
|
|
# Make sure it uses the same build configuration as VTK.
|
|
IF(CMAKE_CONFIGURATION_TYPES)
|
|
SET(VTKExamples_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
|
ELSE(CMAKE_CONFIGURATION_TYPES)
|
|
SET(VTKExamples_CONFIG_TYPE)
|
|
ENDIF(CMAKE_CONFIGURATION_TYPES)
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT ${VTK_BINARY_DIR}/VTKExamples
|
|
COMMAND ${CMAKE_CTEST_COMMAND}
|
|
ARGS ${VTKExamples_CONFIG_TYPE}
|
|
--build-and-test
|
|
${VTK_SOURCE_DIR}/Examples
|
|
${VTK_BINARY_DIR}/Examples/All
|
|
--build-noclean
|
|
--build-two-config
|
|
--build-project VTKExamples
|
|
--build-generator ${CMAKE_GENERATOR}
|
|
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
|
|
--build-options -DVTK_DIR:PATH=${VTK_BINARY_DIR}
|
|
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
|
|
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
|
|
-DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
|
|
-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
|
|
-DCMAKE_C_FLAGS_MINSIZEREL:STRING=${CMAKE_C_FLAGS_MINSIZEREL}
|
|
-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO}
|
|
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
|
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
|
|
-DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
|
|
-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
|
|
-DCMAKE_CXX_FLAGS_MINSIZEREL:STRING=${CMAKE_CXX_FLAGS_MINSIZEREL}
|
|
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
|
-DEXECUTABLE_OUTPUT_PATH:PATH=${EXECUTABLE_OUTPUT_PATH}
|
|
-DLIBRARY_OUTPUT_PATH:PATH=${LIBRARY_OUTPUT_PATH}
|
|
)
|
|
ADD_CUSTOM_TARGET(VTKExamplesTarget ALL DEPENDS ${VTK_BINARY_DIR}/VTKExamples)
|
|
|
|
# Make sure the target builds after the rest of VTK.
|
|
ADD_DEPENDENCIES(VTKExamplesTarget
|
|
vtkCommon
|
|
vtkFiltering
|
|
vtkImaging
|
|
vtkGraphics
|
|
vtkGenericFiltering
|
|
vtkIO
|
|
)
|
|
IF(VTK_USE_RENDERING)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget vtkRendering)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget vtkVolumeRendering)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget vtkHybrid)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget vtkWidgets)
|
|
ENDIF(VTK_USE_RENDERING)
|
|
IF(VTK_USE_PARALLEL)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget vtkParallel)
|
|
ENDIF(VTK_USE_PARALLEL)
|
|
IF(VTK_USE_QVTK)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget QVTK)
|
|
ENDIF(VTK_USE_QVTK)
|
|
IF(VTK_USE_MFC)
|
|
ADD_DEPENDENCIES(VTKExamplesTarget vtkMFC)
|
|
ENDIF(VTK_USE_MFC)
|
|
|
|
ELSE(VTK_BINARY_DIR)
|
|
# We are building outside the VTK tree. Build the examples directly.
|
|
PROJECT(VTKExamples)
|
|
|
|
# Find and load the VTK configuration.
|
|
FIND_PACKAGE(VTK)
|
|
IF(NOT VTK_DIR)
|
|
MESSAGE(FATAL_ERROR "Please set VTK_DIR.")
|
|
ENDIF(NOT VTK_DIR)
|
|
INCLUDE(${VTK_USE_FILE})
|
|
|
|
# Most examples require rendering support.
|
|
IF(VTK_USE_RENDERING)
|
|
SUBDIRS(
|
|
AMR/Cxx
|
|
MultiBlock/Cxx
|
|
GUI/Motif
|
|
DataManipulation/Cxx
|
|
Medical/Cxx
|
|
Modelling/Cxx
|
|
Rendering/Cxx
|
|
Tutorial/Step1/Cxx
|
|
Tutorial/Step2/Cxx
|
|
Tutorial/Step3/Cxx
|
|
Tutorial/Step4/Cxx
|
|
Tutorial/Step5/Cxx
|
|
Tutorial/Step6/Cxx
|
|
)
|
|
|
|
IF(VTK_USE_PARALLEL)
|
|
SUBDIRS(ParallelProcessing)
|
|
ENDIF(VTK_USE_PARALLEL)
|
|
|
|
IF(VTK_USE_QVTK)
|
|
SUBDIRS(GUI/Qt)
|
|
ENDIF(VTK_USE_QVTK)
|
|
|
|
IF(VTK_USE_MFC)
|
|
SUBDIRS(GUI/Win32/vtkMFC)
|
|
ENDIF(VTK_USE_MFC)
|
|
ENDIF(VTK_USE_RENDERING)
|
|
ENDIF(VTK_BINARY_DIR)
|
|
|