Skip to content
Snippets Groups Projects
Commit adc01031 authored by Kasper Marstal's avatar Kasper Marstal
Browse files

Merge branch 'ELASTIX-1-setup-development-infrastructure' into develop

parents 213aa04b a881fe86
No related branches found
No related tags found
No related merge requests found
Showing
with 489 additions and 65 deletions
.DS_Store .DS_Store
build .idea
sudo: false
language: cpp language: cpp
os:
- linux
- osx
compiler: compiler:
- clang - clang
- gcc - gcc
...@@ -21,4 +27,7 @@ before_script: ...@@ -21,4 +27,7 @@ before_script:
script: script:
- cmake ../SuperElastix/SuperBuild - cmake ../SuperElastix/SuperBuild
- make --jobs=2 | grep -v '^--' | grep -v '^Installing' - make --jobs=2 | grep -v '^--' | grep -v '^Installing'
- make test
after_sucess:
- cd Elastix-build
- ctest
...@@ -9,4 +9,4 @@ set( CompilerFlags ...@@ -9,4 +9,4 @@ set( CompilerFlags
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS_RELWITHDEBINFO
) )
\ No newline at end of file
# Visual Studio complains if paths are too long
string( LENGTH "${CMAKE_CURRENT_SOURCE_DIR}" n )
if( n GREATER 50 )
message(
FATAL_ERROR
"ITK source code directory path length is too long (${n} > 50)."
"Please move the ITK source code directory to a directory with a shorter path."
)
endif()
string( LENGTH "${CMAKE_CURRENT_BINARY_DIR}" n )
if( n GREATER 50 )
message(
FATAL_ERROR
"ITK build directory path length is too long (${n} > 50)."
"Please set the ITK build directory to a directory with a shorter path."
)
endif()
include( ${CMAKE_SOURCE_DIR}/CMake/elxCompilerFlags.cmake ) # GoogleTest needs static linking
include( elxCompilerFlags.cmake )
foreach( CompilerFlag ${CompilerFlags} ) foreach( CompilerFlag ${CompilerFlags} )
# GoogleTest needs static linking
string( REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}" ) string( REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}" )
endforeach() endforeach()
cmake_minimum_required( VERSION 2.8 ) cmake_minimum_required( VERSION 2.8 )
# Include SuperElastix CMake scripts
list( APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/CMake"
)
if( CMAKE_HOST_WIN32 )
include( elxWinConfig.cmake )
endif()
#--------------------------------------------------------------------- #---------------------------------------------------------------------
project( elastix ) project( Elastix )
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# ITK # ITK
find_package( ITK REQUIRED ) find_package( ITK REQUIRED )
set( ITK_NO_IO_FACTORY_REGISTER_MANAGER 1 )
include( ${ITK_USE_FILE} ) include( ${ITK_USE_FILE} )
include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxRequiredITKModules.cmake" ) include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxITKRequiredModules.cmake" )
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Build Elastix # Build Elastix
...@@ -16,11 +26,14 @@ include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxRequiredITKModules.cmake" ) ...@@ -16,11 +26,14 @@ include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxRequiredITKModules.cmake" )
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Testing # Testing
# Do not build tests by default since this requires GoogleTest submodule # Build tests by default
# to be initialized. Otherwise users may see FATAL_ERRORs out of the box. option( ELASTIX_BUILD_TESTING "Enable building tests." ON )
# The SuperBuild will correctly initialize the GoogleTest submodule and
# build tests by default. # ExternalData module requires newer CMake versions
option( ELASTIX_BUILD_TESTING "Enable building tests." OFF ) if( CMAKE_VERSION VERSION_LESS 2.8.11 )
set( ELASTIX_BUILD_TESTING OFF FORCE )
message( STATUS "ELASTIX_BUILD_TESTING was set to OFF because CMake version is less than 2.8.11")
endif()
if( ELASTIX_BUILD_TESTING ) if( ELASTIX_BUILD_TESTING )
enable_testing() enable_testing()
...@@ -34,5 +47,5 @@ mark_as_advanced( ELASTIX_BUILD_DOXYGEN ) ...@@ -34,5 +47,5 @@ mark_as_advanced( ELASTIX_BUILD_DOXYGEN )
option( ELASTIX_BUILD_DOXYGEN "Enable building Doxygen documentation." OFF ) option( ELASTIX_BUILD_DOXYGEN "Enable building Doxygen documentation." OFF )
mark_as_advanced( ELASTIX_BUILD_READTHEDOCS ) mark_as_advanced( ELASTIX_BUILD_READTHEDOCS )
option( ELASTX_BUILD_READTHEDOCS "Enable building readthedocs.org documentation." OFF ) option( ELASTIX_BUILD_READTHEDOCS "Enable building readthedocs.org documentation." OFF )
cmake_minimum_required( VERSION 2.8 ) cmake_minimum_required( VERSION 2.8 )
#--------------------------------------------------------------------- #---------------------------------------------------------------------
project( elastixSuperBuild ) project( ElastixSuperBuild )
find_package( Git REQUIRED ) find_package( Git REQUIRED )
...@@ -13,6 +13,8 @@ set( CMAKE_MODULE_PATH ...@@ -13,6 +13,8 @@ set( CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH}
) )
set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "SuperBuild install directory" FORCE)
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Elastix SuperBuild configuration # Elastix SuperBuild configuration
...@@ -29,12 +31,12 @@ option( ELASTIX_BUILD_EXAMPLES "Enable building examples." ON ) ...@@ -29,12 +31,12 @@ option( ELASTIX_BUILD_EXAMPLES "Enable building examples." ON )
option( ELASTIX_BUILD_TESTING "Enable building tests." ON ) option( ELASTIX_BUILD_TESTING "Enable building tests." ON )
if( ELASTIX_BUILD_TESTING ) if( ELASTIX_BUILD_TESTING )
mark_as_advanced( ELASTIX_BUILD_CTESTS ) option( ELASTIX_BUILD_BENCHMARKING "Enable building benchmarks." ON )
option( ELASTIX_BUILD_CTESTS "Enable CTests." OFF ) option( ELASTIX_BUILD_DASHBOARD "Enable building benchmarks." ON )
endif() endif()
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Build ITK as external project # Build ITK
set( ITK_VERSION_MAJOR "4" ) set( ITK_VERSION_MAJOR "4" )
set( ITK_VERSION_MINOR "7" ) set( ITK_VERSION_MINOR "7" )
...@@ -53,7 +55,7 @@ else() ...@@ -53,7 +55,7 @@ else()
endif() endif()
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Build Elastix as an external project # Build Elastix
include( Elastix ) include( Elastix )
......
...@@ -4,11 +4,11 @@ ExternalProject_Add( ${proj} ...@@ -4,11 +4,11 @@ ExternalProject_Add( ${proj}
DOWNLOAD_COMMAND "" DOWNLOAD_COMMAND ""
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..
BINARY_DIR ${proj}-build BINARY_DIR ${proj}-build
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CMAKE_ARGS CMAKE_ARGS
--no-warn-unused-cli --no-warn-unused-cli
-DELASTIX_BUILD_TESTING:BOOL=${ELASTIX_BUILD_TESTING} -DELASTIX_BUILD_TESTING:BOOL=${ELASTIX_BUILD_TESTING}
-DELASTIX_BUILD_CTESTS:BOOL=${ELASTIX_BUILD_CTESTS} -DELASTIX_BUILD_BENCHMARKING:BOOL=${ELASTIX_BUILD_BENCHMARKING}
-DELASTIX_BUILD_DASHBOARD:BOOL=${ELASTIX_BUILD_DASHBOARD}
-DITK_DIR:PATH=${ITK_DIR} -DITK_DIR:PATH=${ITK_DIR}
DEPENDS ${ELASTIX_DEPENDENCIES} DEPENDS ${ELASTIX_DEPENDENCIES}
INSTALL_COMMAND "" INSTALL_COMMAND ""
......
/**
* Benchmarking multi-resolution non-rigid b-spline registration
* with mutual information in ITK, Elastix and ANTs
*/
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
// DeformableRegistration1
#include "itkRescaleIntensityImageFilter.h"
#include "itkHistogramMatchingImageFilter.h"
#include "itkFEMRegistrationFilter.h"
#include "gtest/gtest.h"
class itkExamples : public ::testing::Test
{
protected:
virtual void SetUp()
{
const char *fixedImageName, *movingImageName;
if ( argc < 2 )
{
std::cout << "Image filenames missing." << std::endl;
std::cout << "Usage: " << argv[0] << " fixedImageFilename movingImageFilename"
<< std::endl;
return EXIT_FAILURE;
}
else
{
fixedImageFilename = argv[1];
movingImageFilename = argv[2];
}
}
};
TEST_F( BSplineRegistration, ITK ) {
const unsigned int ImageDimension = 2;
typedef unsigned char PixelType;
typedef itk::Image< PixelType, ImageDimension > ImageType;
const unsigned int SplineOrder = 3;
typedef double CoordinateRepType;
// Transform
typedef itk::BSplineDeformableTransform< CoordinateRepType,
SpaceDimension,
SplineOrder > TransformType;
typedef TransformType::RegionType RegionType;
RegionType bsplineRegion;
RegionType::SizeType gridSizeOnImage;
RegionType::SizeType gridBorderSize;
RegionType::SizeType totalGridSize;
gridSizeOnImage.Fill( 5 );
gridBorderSize.Fill( 3 ); // Border for spline order = 3 ( 1 lower, 2 upper )
totalGridSize = gridSizeOnImage + gridBorderSize;
bsplineRegion.SetSize( totalGridSize );
typedef TransformType::SpacingType SpacingType;
SpacingType spacing = fixedImage->GetSpacing();
typedef TransformType::OriginType OriginType;
OriginType origin = fixedImage->GetOrigin();
ImageType::SizeType fixedImageSize = fixedRegion.GetSize();
for(unsigned int r=0; r<ImageDimension; r++)
{
spacing[r] *= static_cast<double>(fixedImageSize[r] - 1) /
static_cast<double>(gridSizeOnImage[r] - 1);
}
ImageType::DirectionType gridDirection = fixedImage->GetDirection();
SpacingType gridOriginOffset = gridDirection * spacing;
OriginType gridOrigin = origin - gridOriginOffset;
transform->SetGridSpacing( spacing );
transform->SetGridOrigin( gridOrigin );
transform->SetGridRegion( bsplineRegion );
transform->SetGridDirection( gridDirection );
typedef TransformType::ParametersType ParametersType;
const unsigned int numberOfParameters = transform->GetNumberOfParameters();
ParametersType parameters( numberOfParameters );
parameters.Fill( 0.0 );
transform->SetParameters( parameters );
// Optimizer
typedef itk::LBFGSOptimizer OptimizerType;
optimizer->SetGradientConvergenceTolerance( 0.05 );
optimizer->SetLineSearchAccuracy( 0.9 );
optimizer->SetDefaultStepLength( .5 );
optimizer->TraceOn();
optimizer->SetMaximumNumberOfFunctionEvaluations( 1024 );
// Metric
typedef itk::MeanSquaresImageToImageMetric< ImageType,
ImageType > MetricType;
// Interpolator
typedef itk:: LinearInterpolateImageFunction< ImageType,
double > InterpolatorType;
// Setup the registration
typedef itk::ImageRegistrationMethod< ImageType,
ImageType > RegistrationType;
RegistrationType::Pointer registration = RegistrationType::New();
registration->SetNumberOfThreads( 1 );
registration->SetMetric( MetricType::New() );
registration->SetOptimizer( OptimizerType::New() );
registration->SetInterpolator( InterpolatorType::New() );
TransformType::Pointer transform = TransformType::New();
registration->SetTransform( transform );
registration->SetFixedImage( fixedImage );
registration->SetMovingImage( movingImage );
ImageType::RegionType fixedRegion = fixedImage->GetBufferedRegion();
registration->SetFixedImageRegion( fixedRegion );
registration->SetInitialTransformParameters( transform->GetParameters() );
// Execute
EXPECT_NO_THROW( registration->Update() );
}
\ No newline at end of file
#
set( GTEST_OPTIONS
-gtest_output
)
#---------------------------------------------------------------------
# To add a benchmark to the build system, append it to the list below.
# Any GoogleTests in these files are automatically added to CTest.
set( ElastixBenchmarkSource
elxExampleBenchmark.cxx
)
#---------------------------------------------------------------------
# To add data to a benchmark, create a list "${filename}Data" (without
# the filename extension) and add data to this list.
set( elxExampleBenchmarkData
DATA{Testing/Data/Input/BrainProtonDensitySlice.png}
DATA{Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png}
)
#---------------------------------------------------------------------
# Build executables
foreach( ElastixBenchmarkFilename ${ElastixBenchmarkSource} )
string( REPLACE ".cxx" "" ElastixBenchmark ${ElastixBenchmarkFilename} )
add_executable( ${ElastixBenchmark} ${ElastixBenchmarkFilename} )
target_link_libraries( ${ElastixBenchmark} ${ELASTIX_LIBRARIES} ${ITK_LIBRARIES} ${TEST_LIBRARIES} )
ExternalData_Add_Test( "${ElastixBenchmark}ExternalDataTarget"
NAME ${ElastixBenchmark}
COMMAND "${ElastixBenchmark} ${${ElastixBenchmarkTest}Data} ${GTEST_OPTIONS}"
)
ExternalData_Add_Target( "${ElastixBenchmark}ExternalDataTarget"} )
endforeach()
#--------------------------------------------------------------------- # ---------------------------------------------------------------------
# Download test data
# ExternalData module requires CMake version 2.8.11
if( CMAKE_VERSION VERSION_LESS 2.8.11 )
message( FATAL_ERROR "Building tests require CMake 2.8.11 or newer." )
endif()
include( ExternalData )
list( APPEND ExternalData_URL_TEMPLATES
"http://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=%(hash)&algorithm=%(algo)"
"https://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=%(hash)&algorithm=%(algo)"
)
# Scan the Data directory for content links on the form "[filename].[ext].md5".
# The content links contains md5 hashes that are checked for consistensy
# against files downloaded from servers in ExternalData_URL_TEMPLATES. These
# files are placed in a corresponding location in the build directory.
file( GLOB_RECURSE ElastixDataContentLinks "*.md5" )
foreach(ElastixDataContentLink ${ElastixDataContentLinks})
string( REGEX REPLACE "\\.md5$" "" ElastixDataContentLink ${ElastixDataContentLink} )
ExternalData_Expand_Arguments( ElastixData
ElastixDataFilenames
DATA{${ElastixDataContentLink}}
)
endforeach()
# Test data is downloaded when this target is built
ExternalData_Add_Target( ElastixData )
# ---------------------------------------------------------------------
# Setup GoogleTest # Setup GoogleTest
if( NOT EXISTS "${CMAKE_SOURCE_DIR}/Testing/GoogleTest/.git" ) find_package( Git )
message( FATAL_ERROR "Could not find GoogleTest submodule. Please run if( NOT EXISTS "${CMAKE_SOURCE_DIR}/Testing/GoogleTest/.git" AND GIT_EXECUTABLE )
git submodule update --init in the source directory to compile tests." ) execute_process(
COMMAND ${GIT_EXECUTABLE} submodule update --init
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_QUIET
)
endif()
if( NOT EXISTS ${CMAKE_SOURCE_DIR}/Testing/GoogleTest/.git )
message(
FATAL_ERROR "Could not find GoogleTest submodule. Please run
git submodule update --init in the source directory to compile tests."
)
endif() endif()
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC" ) if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC" )
include( ${CMAKE_SOURCE_DIR}/CMake/elxGoogleTestWinConfig.cmake ) include( elxWinConfigGoogleTest.cmake )
endif() endif()
add_subdirectory( GoogleTest ) add_subdirectory( GoogleTest )
...@@ -20,48 +62,24 @@ set( TEST_LIBRARIES ...@@ -20,48 +62,24 @@ set( TEST_LIBRARIES
gtest_main gtest_main
) )
#--------------------------------------------------------------------- # ---------------------------------------------------------------------
# To add a test to the build system, append it to the list below. # Build test suite
# Any GoogleTests in these files are automatically added to CTest.
set( ElastixUnitTestSource # Unit tests
elxExampleTest.cxx add_subdirectory( Unit )
)
#---------------------------------------------------------------------
# Setup ExternalData
# ExternalData module was introduced in CMake version 2.8.11
cmake_minimum_required( VERSION 2.8.11 )
include( ExternalData )
list( APPEND ExternalData_URL_TEMPLATES
"http://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=%(hash)&algorithm=%(algo)"
"https://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=%(hash)&algorithm=%(algo)"
)
#---------------------------------------------------------------------
# To add data to a tests, create a list "${filename}Data" (without
# the filename extension) and add data to this list.
set( elxExampleTestData
DATA{Data/Input/BrainProtonDensitySliceR10X13Y17.png}
)
#---------------------------------------------------------------------
# Build test executables
foreach( ElastixUnitTestFilename ${ElastixUnitTestSource} ) # Benchmarks
string( REPLACE ".cxx" "" ElastixUnitTest ${ElastixUnitTestFilename} ) option( ELASTIX_BUILD_BENCHMARKING "Enable building benchmarks." OFF )
add_executable( ${ElastixUnitTest} ${ElastixUnitTestFilename} )
target_link_libraries( ${ElastixUnitTest} ${ELASTIX_LIBRARIES} ${ITK_LIBRARIES} ${TEST_LIBRARIES} )
ExternalData_Add_Test( "${ElastixUnitTest}ExternalDataTarget" if( ${ELASTIX_BUILD_BENCHMARKING} )
NAME ${ElastixUnitTest} add_subdirectory( Benchmark )
COMMAND ${ElastixUnitTest} ${${ElastixUnitTest}Data} endif()
)
ExternalData_Add_Target( "${ElastixUnitTest}ExternalDataTarget"} ) # ---------------------------------------------------------------------
endforeach() # Configure dashboard
mark_as_advanced( ELASTIX_BUILD_DASHBOARD )
option( ELASTIX_BUILD_DASHBOARD "Enable elastix dashboard." OFF )
if( ${ELASTIX_BUILD_DASHBOARD} )
add_subdirectory( Dashboard )
endif()
# ---------------------------------------------------------------------
# Settings
mark_as_advanced( ELASTIX_DASHBOARD_HOST )
set( ELASTIX_DASHBOARD_HOST "elastix" )
mark_as_advanced( ELASTIX_DASHBOARD_ELASTICSEARCH_PORT )
set( ELASTIX_DASHBOARD_ELASTICSEARCH_PORT 9200 )
mark_as_advanced( ELASTIX_DASHBOARD_LOGSTASH_PORT )
set( ELASTIX_DASHBOARD_LOGSTASH_PORT 5043 )
mark_as_advanced( ELASTIX_DASHBOARD_KIBANA_PORT )
set( ELASTIX_DASHBOARD_KIBANA_PORT 5601 )
mark_as_advanced( ELASTIX_DASHBOARD_SOURCE_DIR )
set( ELASTIX_DASHBOARD_SOURCE_DIR "${CMAKE_SOURCE_DIR}/Testing/Dashboard" )
mark_as_advanced( ELASTIX_DASHBOARD_BINARY_DIR )
set( ELASTIX_DASHBOARD_BINARY_DIR "${CMAKE_BINARY_DIR}/Testing/Dashboard" )
mark_as_advanced( ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE )
set( ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE "elxLogstashForwarder.crt" )
mark_as_advanced( ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY )
set( ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY "elxLogstashForwarder.key" )
mark_as_advanced( ELASTIX_DASHBOARD_VOLUME )
set( ELASTIX_DASHBOARD_VOLUME "${ELASTIX_DASHBOARD_BINARY_DIR}/Data" )
if( NOT EXISTS "${ELASTIX_DASHBOARD_VOLUME}" )
message( STATUS
"ELASTIX_DASHBOARD_VOLUME points to the default ${CMAKE_BINARY_DIR}/Testing/Dashboard/Data path in your build directory. Point to another directory on your local machine to ensure dashboard state is saved between builds."
)
file( MAKE_DIRECTORY "${ELASTIX_DASHBOARD_VOLUME}" )
endif()
# ---------------------------------------------------------------------
# Configure
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/docker-compose.yml.in
${ELASTIX_DASHBOARD_BINARY_DIR}/docker-compose.yml
)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/elxLogstash.conf.in
${ELASTIX_DASHBOARD_BINARY_DIR}/elxLogstash/elxLogstash.conf
)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/elxLogstashForwarder.conf.in
${ELASTIX_DASHBOARD_BINARY_DIR}/elxLogstashForwarder.conf
)
\ No newline at end of file
elastix:
image: willdurand/elk
ports:
- "80:80"
- "@ELASTIX_DASHBOARD_LOGSTASH_PORT@:@ELASTIX_DASHBOARD_LOGSTASH_PORT@"
volumes_from:
- data
data:
image: busybox
volumes:
- @ELASTIX_DASHBOARD_SOURCE_DIR@:/etc/ssl
- @ELASTIX_DASHBOARD_VOLUME@:/data
- @ELASTIX_DASHBOARD_BINARY_DIR@/elxLogstash:/etc/logstash
\ No newline at end of file
input {
lumberjack {
port => @ELASTIX_DASHBOARD_LOGSTASH_PORT@
ssl_certificate => "/etc/ssl/@ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE@"
ssl_key => "/etc/ssl/@ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY@"
}
}
filter {
xml {
source => message
target => result
}
}
output {
elasticsearch {
protocol => http
}
}
\ No newline at end of file
{
"network": {
"servers": [ "@ELASTIX_DASHBOARD_HOST@:@ELASTIX_DASHBOARD_LOGSTASH_PORT@" ],
"timeout": 15,
"ssl certificate": "@ELASTIX_DASHBOARD_SOURCE_DIR@/@ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE@",
"ssl key": "@ELASTIX_DASHBOARD_SOURCE_DIR@/@ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY@",
"ssl ca": "@ELASTIX_DASHBOARD_SOURCE_DIR@/@ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE@"
},
"files": [
{
"paths": [
"@CMAKE_BINARY_DIR@/Testing/Unit/*.xml"
],
"fields": {
"type": "unittest",
"lib": "elastix"
}
}
]
}
-----BEGIN CERTIFICATE-----
MIIDGjCCAgKgAwIBAgIJAMF8GSVtnyB6MA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
BAMTB2VsYXN0aXgwHhcNMTUwODEyMTQxNjE1WhcNMTUwOTExMTQxNjE1WjASMRAw
DgYDVQQDEwdlbGFzdGl4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
01P404f+W/aBLxlQTFyHy1o7m07edUmFIjJuN9JjGTzZtlhAEc7dXJ8fUwr/hnLq
HUeaGRbNcpFDj+/Xq2W9jH7/VyxivA8Ib7ycLNxywgmheZVxXetPIeYmK+Rqovyd
GhMcU0WMv/3OslFjf92PLegFgRYbmJa7rEH+I0MD1hE1rn1AIJeU4nVCUrtQON6g
icDEZSNwVSuLfdiuHCMcAVWx+pQIyHji6EoyIBjNsF8LoBZoMY5N+qRph8tt9k1N
GemQoaZWd926jWgrsSSrAfgtMxw43TXwCFe8RiL8L+pZlN4xxYjQj1/PtTowqjzL
dYqWAT0o5zwlqkrNgjTuYwIDAQABo3MwcTAdBgNVHQ4EFgQU8onFqrecR/J81ZFi
gonexjVf8yAwQgYDVR0jBDswOYAU8onFqrecR/J81ZFigonexjVf8yChFqQUMBIx
EDAOBgNVBAMTB2VsYXN0aXiCCQDBfBklbZ8gejAMBgNVHRMEBTADAQH/MA0GCSqG
SIb3DQEBBQUAA4IBAQCYalhVZpN/F/Cux/KRBuOyyVxD+tOM7PDlXuuGMcxZ8PTH
sYK3MLBUvGnn90R6YIF+pmZC40hkau12xGRnlyNLa0EpnAd77SGlaB/y9Ix6RCDd
PRvdEZodknXzS5sDw+A9pA0JtZANrAXHrELPXjfp5vdf4EUH/o7TTh3XzTEIokwp
VY6557E17BYsTHHebWPSiDzCeS9y6PtdiZczuHrd7+K+vWgVcgmQ0fdudWwcMOEC
8s6O8uQGrc1v9nSyT93C9MPCWnuZ2McFX4JPSwaqAaKCTcnc8GAcqk4O5ruQ/8u/
xSNQsoYpFi2BawOdPDqyMKn4khkREWTq0+T+7Kq2
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA01P404f+W/aBLxlQTFyHy1o7m07edUmFIjJuN9JjGTzZtlhA
Ec7dXJ8fUwr/hnLqHUeaGRbNcpFDj+/Xq2W9jH7/VyxivA8Ib7ycLNxywgmheZVx
XetPIeYmK+RqovydGhMcU0WMv/3OslFjf92PLegFgRYbmJa7rEH+I0MD1hE1rn1A
IJeU4nVCUrtQON6gicDEZSNwVSuLfdiuHCMcAVWx+pQIyHji6EoyIBjNsF8LoBZo
MY5N+qRph8tt9k1NGemQoaZWd926jWgrsSSrAfgtMxw43TXwCFe8RiL8L+pZlN4x
xYjQj1/PtTowqjzLdYqWAT0o5zwlqkrNgjTuYwIDAQABAoIBAB6ug2LazMA3Utwu
tazQhlqs2BidY8jtiqnDXqM2JXMllYpW175+JT9sTtT0tNKlXn4vxhy8Zcmrc36z
WMGmvNVoHtReOluJZzUp0hblTrgDQ/FuFA6Jumx2iLY4rI7LVFfTzHn+kAfT5q2X
CXYoCcClfh8WwZzuzYKd9jLSaP0sMKBqz7IAJDE3Ie3vzsznp56ZceMZqgqDjbgw
p1Gt2eNNWdi0GXSxvv5x9o5UYCNCkmb9Ot3/l4aVMe+jxwtd6b0xjjIry/Orw4Y3
L4Zu5x07np5K+RxKer9Y6zlKR6iyVME3r6a014dCoKVLpdUph+sTQq3qn2PmdFYk
XM6eAlECgYEA///UzS31YTqsMehPWEHWF+TkqZJfVCegZgSCGOUXkPXAZoLzVwsK
WwMILYMDR9ur9lJ7xzcBtSc9PylZFX0hFfHeCE30XHZ0CaX2f07cVI4WxRYCDtNJ
7rAb7r1ADG4jWEEqMuGBliDT8Sp/2zZfD9q47JnTQsrhgSW1YwJHh1kCgYEA01Qc
fJyYnlLdZnuKUwu2AJslOBup2Ntp8IFRpUSuaPrC3h/WqUU+ALhhtkI6ZZTqdmoo
9aRqEFwIlLOU2J4PempwOh8tVQoAz37Ye+J5DDfqqn2KUeC28qHhmjHPBz7bw3wa
Nfs73/KsDNIElnygmk6emlUcN1l1kW0hdRLp6BsCgYBiCI1seWITds2EWysvaB7d
jZkHWvdImdgx2R4c/HYW3BVu7EzVk3PGwJV8IES8WuIydQnTkzwDLGCm9GWZ9g4a
gkH9uiSO2Am9vCF2RTPY6YTMuo3VMZKJZkV8GlsRp4e/f0zyqSrf2/htzVGjF+I1
hxPz/0BIvrq2o0MgBDpyGQKBgAeNS+9QEUwnHe5Zn9nT408mPDBDHNC5FpIXrPlA
+RKbU3don90wskSIUkWXHEshBTfyF0Cf/YJUJ6JYwIr1Kwxu3U/WaWJOlzTTDZ1v
vG+pV+N71QOUCjWlf1BpU0KpBmV3+9/N+JfKLkfPAYb3MS4SfSx6uiVoNwFZawaq
BF3dAoGAYFombeE1Ky5CqoCu31CUvAX8FXI+32fZYC2YBguc9FMIVU9NCeBLBDIB
D24UchcTfJLtn1GIMjv8+OSwiv7g2LlHlMB0q6j0k+9xkA9sMn5BgbsNs6Nsa+hu
pp9Kl4jib8r434jOp4RoxkA6toI6rw88M8GZHNee1PW3MwMcdm4=
-----END RSA PRIVATE KEY-----
#---------------------------------------------------------------------
# To add a test to the build system, append it to the list below.
# Any GoogleTests in these files are automatically added to CTest and
# the Kibana dashboard.
set( ElastixUnitTestFilenames
elxExampleUnitTest.cxx
)
#---------------------------------------------------------------------
# Set data directories
set( ELASTIX_UNITTEST_INPUT_DATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/Data/Input )
set( ELASTIX_UNITTEST_BASELINE_DATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/Data/Baseline )
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/elxTestHarness.h.in
${CMAKE_CURRENT_BINARY_DIR}/elxTestHarness.h
ESCAPE_QUOTES
)
# Build tests
foreach( ElastixUnitTestFilename ${ElastixUnitTestFilenames} )
# Build tests executables
string( REPLACE ".cxx" "" ElastixUnitTest ${ElastixUnitTestFilename} )
add_executable( "${ElastixUnitTest}" ${ElastixUnitTestFilename} )
target_link_libraries( "${ElastixUnitTest}" ${ELASTIX_LIBRARIES} ${ITK_LIBRARIES} ${TEST_LIBRARIES} )
ExternalData_Add_Test( ElastixData
NAME ${ElastixUnitTest}
COMMAND ${ElastixUnitTest} "--gtest_output=xml:${CMAKE_BINARY_DIR}/Testing/Unit/${ElastixUnitTest}.xml"
)
endforeach()
073df8eb397d1746d2343c78dd4bd964
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment