2010-10-07 03:00:07 +00:00
# /*---------------------------------------------------------------------------*\
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright held by original author
# \\/ M anipulation |
# -------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
#
# OpenFOAM is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Description
2013-07-18 01:02:34 +00:00
# CMakeLists.txt file for implementing a test harness for the
2010-10-07 03:00:07 +00:00
# Turbomachinery OSIG test cases
#
# The results will be submitted to the CDash server identified by the file
# CTestConfig.cmake
#
# Author
# Martin Beaudoin, Hydro-Quebec, 2010. All rights reserved
#
#
# \*---------------------------------------------------------------------------*/
cmake_minimum_required (VERSION 2.8)
PROJECT(Turbomachinery-1.5-dev)
#-----------------------------------------------------------------------------
# Initialization of CTest specific variables
# Initialize the site name
IF (NOT $ENV{CDASH_SUBMIT_LOCAL_HOST_ID} STREQUAL "")
# We can override the site name with the environment variable
# $CDASH_SUBMIT_LOCAL_HOST_ID
SET(
SITENAME $ENV{CDASH_SUBMIT_LOCAL_HOST_ID}
2013-07-18 01:43:15 +00:00
CACHE STRING "Name of the local site"
2010-10-07 03:00:07 +00:00
)
ELSE (NOT $ENV{CDASH_SUBMIT_LOCAL_HOST_ID} STREQUAL "")
# Grab the hostname FQN; will be used for the sitename
execute_process(
COMMAND hostname -f
OUTPUT_VARIABLE SITENAME
)
ENDIF (NOT $ENV{CDASH_SUBMIT_LOCAL_HOST_ID} STREQUAL "")
MESSAGE("Initializing the name of this local site to: ${SITENAME}")
SET(
SITE ${SITENAME}
CACHE STRING "Name of the local site"
)
#Grab the Turbomachinery OSIG base directory
SET(
TURBOMACHINERY_OSIG_ROOT $ENV{BREEDER_OSIG_TURBOMACHINERY_DIR}
CACHE INTERNAL "Turbomachinery OSIG root directory."
)
# Construct the build name.
# No need to add $WM_PROJECT_VERSION to the name of the build,
# the test harness name should have taken care of that.
SET(
BUILDNAME $ENV{WM_OPTIONS}
CACHE STRING "Build ID"
)
# Find out the version of the compiler being used.
2013-07-18 01:02:34 +00:00
# Add this information to the buildname
# This is for gcc
2010-10-07 03:00:07 +00:00
IF(CMAKE_COMPILER_IS_GNUCC)
EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
ARGS -dumpversion
OUTPUT_VARIABLE COMPILER_VERSION
)
2013-07-18 01:02:34 +00:00
SET(BUILDNAME "${BUILDNAME}-gcc${COMPILER_VERSION}")
2010-10-07 03:00:07 +00:00
ENDIF(CMAKE_COMPILER_IS_GNUCC)
#
# We will support more compilers eventually.
2013-07-18 01:02:34 +00:00
#
2010-10-07 03:00:07 +00:00
# Timeout for running all this: 4 hours: 4 x 3600 seconds
SET(
DART_TESTING_TIMEOUT 14400
CACHE STRING "Maximum time allowed (4 hours) before CTest will kill the test."
)
SET(
CMAKE_VERBOSE_MAKEFILE TRUE
)
# Update section
#-----------------------------------------------------------------------------
set (UPDATE_TYPE svn)
# Build section
2011-01-13 17:23:39 +00:00
#--------------------------------------------------------------------------------
2010-10-07 03:00:07 +00:00
# Compile the libs
add_custom_target (Turbo_Libs-src-$ENV{WM_PROJECT_VERSION} ALL
./Allwmake
WORKING_DIRECTORY ${TURBOMACHINERY_OSIG_ROOT}/src
)
set_property(
TARGET Turbo_Libs-src-$ENV{WM_PROJECT_VERSION}
PROPERTY LABELS Turbo_Libs-src-$ENV{WM_PROJECT_VERSION}
)
# rotorStatorInterfaces is not compiled by default
# MB 22/06/2010
add_custom_target (Turbo_Libs-rotorStatorInterfaces-$ENV{WM_PROJECT_VERSION}
wmake libso
WORKING_DIRECTORY ${TURBOMACHINERY_OSIG_ROOT}/rotorStatorInterfaces
)
set_property(
TARGET Turbo_Libs-rotorStatorInterfaces-$ENV{WM_PROJECT_VERSION}
PROPERTY LABELS Turbo_Libs-rotorStatorInterfaces-$ENV{WM_PROJECT_VERSION}
)
# We need the Breeder's simpleFunctionObjects library
add_custom_target (Breeder_Libs-simpleFunctionObjects-$ENV{WM_PROJECT_VERSION} ALL
wmake libso
WORKING_DIRECTORY $ENV{BREEDER_15_DIR}/libraries/simpleFunctionObjects
)
set_property(
TARGET Breeder_Libs-simpleFunctionObjects-$ENV{WM_PROJECT_VERSION}
PROPERTY LABELS Breeder_Libs-simpleFunctionObjects-$ENV{WM_PROJECT_VERSION}
)
# Compile the apps
add_custom_target (Turbo_Apps-Utilities-$ENV{WM_PROJECT_VERSION} ALL
wmake all
WORKING_DIRECTORY ${TURBOMACHINERY_OSIG_ROOT}/applications/utilities
)
set_property(
TARGET Turbo_Apps-Utilities-$ENV{WM_PROJECT_VERSION}
PROPERTY LABELS Turbo_Apps-Utilities-$ENV{WM_PROJECT_VERSION}
)
add_custom_target (Turbo_Apps-Solvers-$ENV{WM_PROJECT_VERSION} ALL
wmake all
WORKING_DIRECTORY ${TURBOMACHINERY_OSIG_ROOT}/applications/solvers
)
set_property(
TARGET Turbo_Apps-Solvers-$ENV{WM_PROJECT_VERSION}
PROPERTY LABELS Turbo_Apps-Solvers-$ENV{WM_PROJECT_VERSION}
)
add_custom_target (Turbo_Apps-SingleChannelPump-initalizeRotation-$ENV{WM_PROJECT_VERSION} ALL
2013-07-18 01:02:34 +00:00
wmake
2010-10-07 03:00:07 +00:00
WORKING_DIRECTORY ${TURBOMACHINERY_OSIG_ROOT}/singleChannelPump/initializeRotation
)
set_property(
TARGET Turbo_Apps-SingleChannelPump-initalizeRotation-$ENV{WM_PROJECT_VERSION}
PROPERTY LABELS Turbo_Apps-SingleChannelPump-initalizeRotation-$ENV{WM_PROJECT_VERSION}
)
# Adding target-level dependencies so the building is made in proper order
add_dependencies(
Turbo_Apps-Utilities-$ENV{WM_PROJECT_VERSION} Turbo_Libs-src-$ENV{WM_PROJECT_VERSION}
)
# Test section
#-----------------------------------------------------------------------------
#Enable testing and dashboard
ENABLE_TESTING()
INCLUDE(CTest)
SET (CTEST_UPDATE_COMMAND "svn")
SET(
CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS 1000
CACHE INTERNAL "Max number of errors"
)
SET(
CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 1000
CACHE INTERNAL "Max number of warnings"
)
IF(BUILD_TESTING)
# Modify this variable if you want the full length test case simulations
# Beware, this might take a long time to execute.
2013-07-18 01:02:34 +00:00
# Otherwise, the default behaviour is to run each test case for 1 "timestep"
2010-10-07 03:00:07 +00:00
#SET(RUN_FROM_ONE_TIMESTEP 0)
SET(RUN_FROM_ONE_TIMESTEP 1)
IF(RUN_FROM_ONE_TIMESTEP)
SET(testIdSuffix "_oneTimeStep")
ENDIF(RUN_FROM_ONE_TIMESTEP)
# Definition of the test suite:
# Run the suite of Turbomachinery test cases
#
INCLUDE($ENV{FOAM_TEST_HARNESS_DIR}/CMakeFiles/TurbomachineryTestsuites_ercoftacConicalDiffuser.cmake)
INCLUDE($ENV{FOAM_TEST_HARNESS_DIR}/CMakeFiles/TurbomachineryTestsuites_ercoftacCentrifugalPump.cmake)
INCLUDE($ENV{FOAM_TEST_HARNESS_DIR}/CMakeFiles/TurbomachineryTestsuites_singleChannelPump.cmake)
INCLUDE($ENV{FOAM_TEST_HARNESS_DIR}/CMakeFiles/TurbomachineryTestsuites_tutorials.cmake)
# Add a dummy test (/bin/true, just for debugging)
ADD_TEST(
Turbo_Dummy_Test-$ENV{WM_PROJECT_VERSION} true
)
IF(RUN_FROM_ONE_TIMESTEP)
# Modify the cases controlDict file in order to run for only one time step
MESSAGE("${testRunTimeDirectory}: Modifying the controlDict files for running only one time step in directory: TurbomachineryTestSuites${testIdSuffix}")
EXECUTE_PROCESS(
COMMAND $ENV{FOAM_TEST_HARNESS_DIR}/scripts/prepareCasesForOneTimeStep.sh TurbomachineryTestSuites${testIdSuffix}
WORKING_DIRECTORY .
)
ENDIF(RUN_FROM_ONE_TIMESTEP)
ENDIF(BUILD_TESTING)
# That's it.
#