From 21bccfdf1ab5e34fdb7145259ac49eebc1ca114e Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Tue, 26 Jun 2018 09:48:57 +0200 Subject: [PATCH] COMP: handle unset WM_OSTYPE for cmake targets (issue #909) - regularise referencing of OpenFOAM env variables, sources etc. --- .../PVReaders/PVFoamReader/CMakeLists.txt | 52 ++++++++++++++----- .../PVblockMeshReader/CMakeLists.txt | 43 +++++++++++---- .../CMakeLists-Common.txt | 38 +++++--------- .../CMakeLists-OpenFOAM.txt | 32 ++++++++++++ .../runTimePostProcessing/CMakeLists.txt | 6 +-- 5 files changed, 121 insertions(+), 50 deletions(-) create mode 100644 src/functionObjects/graphics/runTimePostProcessing/CMakeLists-OpenFOAM.txt diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt index 18302332ae..621dcf61ae 100644 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt +++ b/applications/utilities/postProcessing/graphics/PVReaders/PVFoamReader/CMakeLists.txt @@ -5,24 +5,53 @@ cmake_minimum_required(VERSION 2.8) find_package(ParaView REQUIRED) include(${PARAVIEW_USE_FILE}) +#----------------------------------------------------------------------------- +# Standard definitions when using OpenFOAM + +if (NOT EXISTS "$ENV{WM_PROJECT_DIR}") + message(FATAL_ERROR "WM_PROJECT_DIR not set - no OpenFOAM??") +endif() + +# WM_OSTYPE env variable is optional (only POSIX anyhow) +if (EXISTS "$ENV{WM_OSTYPE}") + set(WM_OSTYPE "$ENV{WM_OSTYPE}") +else() + set(WM_OSTYPE "POSIX") +endif() + +# Convenience name, as per wmake internals +set(LIB_SRC "$ENV{WM_PROJECT_DIR}/src") + +# Needed for internal label-size, scalar-size, templates +add_definitions( + -DWM_$ENV{WM_PRECISION_OPTION} + -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} + -DNoRepository + + -std=c++11 +) + +#----------------------------------------------------------------------------- + link_directories( $ENV{FOAM_LIBBIN} ) include_directories( - $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude - $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude - $ENV{WM_PROJECT_DIR}/src/conversion/lnInclude - $ENV{WM_PROJECT_DIR}/src/finiteArea/lnInclude - $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude + ${LIB_SRC}/OpenFOAM/lnInclude + ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude + ${LIB_SRC}/conversion/lnInclude + ${LIB_SRC}/finiteArea/lnInclude + ${LIB_SRC}/finiteVolume/lnInclude ${PROJECT_SOURCE_DIR}/../foamPv ${PROJECT_SOURCE_DIR}/../vtkPVFoam ) -add_definitions( - -std=c++11 - -DWM_$ENV{WM_PRECISION_OPTION} - -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} +set(OPENFOAM_LIBRARIES + OpenFOAM + finiteVolume + finiteArea + conversion ) # Set output library destination to plugin directory @@ -66,10 +95,7 @@ target_link_libraries( LINK_PUBLIC vtkPVFoam-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} - conversion - finiteArea - finiteVolume - OpenFOAM + ${OPENFOAM_LIBRARIES} ) #----------------------------------------------------------------------------- diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt index ff3a876d30..c6ae7a2db1 100644 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt +++ b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/CMakeLists.txt @@ -9,18 +9,44 @@ link_directories( $ENV{FOAM_LIBBIN} ) +#----------------------------------------------------------------------------- +# Standard definitions when using OpenFOAM + +if (NOT EXISTS "$ENV{WM_PROJECT_DIR}") + message(FATAL_ERROR "WM_PROJECT_DIR not set - no OpenFOAM??") +endif() + +# WM_OSTYPE env variable is optional (only POSIX anyhow) +if (EXISTS "$ENV{WM_OSTYPE}") + set(WM_OSTYPE "$ENV{WM_OSTYPE}") +else() + set(WM_OSTYPE "POSIX") +endif() + +# Convenience name, as per wmake internals +set(LIB_SRC "$ENV{WM_PROJECT_DIR}/src") + +# Needed for internal label-size, scalar-size, templates +add_definitions( + -DWM_$ENV{WM_PRECISION_OPTION} + -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} + -DNoRepository + + -std=c++11 +) + +#----------------------------------------------------------------------------- include_directories( - $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude - $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude - $ENV{WM_PROJECT_DIR}/src/meshing/blockMesh/lnInclude + ${LIB_SRC}/OpenFOAM/lnInclude + ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude + ${LIB_SRC}/meshing/blockMesh/lnInclude ${PROJECT_SOURCE_DIR}/../foamPv ${PROJECT_SOURCE_DIR}/../vtkPVblockMesh ) -add_definitions( - -std=c++11 - -DWM_$ENV{WM_PRECISION_OPTION} - -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} +set(OPENFOAM_LIBRARIES + OpenFOAM + blockMesh ) # Set output library destination to plugin directory @@ -64,8 +90,7 @@ target_link_libraries( LINK_PUBLIC vtkPVblockMesh-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} - blockMesh - OpenFOAM + ${OPENFOAM_LIBRARIES} ) #----------------------------------------------------------------------------- diff --git a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt index 55effddcd5..85e007c437 100644 --- a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt +++ b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-Common.txt @@ -1,3 +1,5 @@ +#----------------------------------------------------------------------------- + include(${VTK_USE_FILE}) if(VTK_LIBRARIES) @@ -7,15 +9,15 @@ endif() if(${VTK_VERSION} VERSION_GREATER "6") message("VTK version: " ${VTK_VERSION}) else() - message(FATAL_ERROR " VTK6 required") + message(FATAL_ERROR " VTK version is too old - requires VTK6 or newer") endif() include_directories( - $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude - $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude - $ENV{WM_PROJECT_DIR}/src/surfMesh/lnInclude - $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude - $ENV{WM_PROJECT_DIR}/src/conversion/lnInclude + ${LIB_SRC}/OpenFOAM/lnInclude + ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude + ${LIB_SRC}/finiteVolume/lnInclude + ${LIB_SRC}/surfMesh/lnInclude + ${LIB_SRC}/conversion/lnInclude ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) @@ -24,22 +26,8 @@ link_directories( $ENV{FOAM_LIBBIN} ) -add_definitions( - -DWM_$ENV{WM_PRECISION_OPTION} -DNoRepository - -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} -) - set(CMAKE_BUILD_TYPE Release) -set(CMAKE_CXX_FLAGS_DEBUG - "-g -O0 -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual" -) -set(CMAKE_C_FLAGS_DEBUG "-g -O0 -std=c++11") - -set(CMAKE_CXX_FLAGS_RELEASE - "-O3 -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual") -set(CMAKE_C_FLAGS_RELEASE "-O3 -std=c++11") - # Set output library destination to plugin directory set(LIBRARY_OUTPUT_PATH $ENV{FOAM_LIBBIN} CACHE INTERNAL @@ -72,8 +60,8 @@ file(GLOB SOURCE_FILES set(OPENFOAM_LIBRARIES OpenFOAM - surfMesh finiteVolume + surfMesh conversion ) @@ -84,10 +72,10 @@ add_library( ) set_target_properties( - runTimePostProcessing - PROPERTIES - VERSION ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION} - SOVERSION ${VTK_MAJOR_VERSION} + runTimePostProcessing + PROPERTIES + VERSION ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION} + SOVERSION ${VTK_MAJOR_VERSION} ) target_link_libraries( diff --git a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-OpenFOAM.txt b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-OpenFOAM.txt new file mode 100644 index 0000000000..00a63cbc0d --- /dev/null +++ b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists-OpenFOAM.txt @@ -0,0 +1,32 @@ +#----------------------------------------------------------------------------- +# Standard definitions when using OpenFOAM + +if (NOT EXISTS "$ENV{WM_PROJECT_DIR}") + message(FATAL_ERROR "WM_PROJECT_DIR not set - no OpenFOAM??") +endif() + +# WM_OSTYPE env variable is optional (only POSIX anyhow) +if (EXISTS "$ENV{WM_OSTYPE}") + set(WM_OSTYPE "$ENV{WM_OSTYPE}") +else() + set(WM_OSTYPE "POSIX") +endif() + +# Convenience name, as per wmake internals +set(LIB_SRC "$ENV{WM_PROJECT_DIR}/src") + +# Needed for internal label-size, scalar-size, templates +add_definitions( + -DWM_$ENV{WM_PRECISION_OPTION} + -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} + -DNoRepository +) + +set(CMAKE_CXX_FLAGS_DEBUG + "-g -O0 -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual" +) +set(CMAKE_CXX_FLAGS_RELEASE + "-O3 -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wno-overloaded-virtual" +) + +#----------------------------------------------------------------------------- diff --git a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists.txt b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists.txt index 903942b305..0a3838b4ea 100644 --- a/src/functionObjects/graphics/runTimePostProcessing/CMakeLists.txt +++ b/src/functionObjects/graphics/runTimePostProcessing/CMakeLists.txt @@ -17,11 +17,11 @@ elseif (EXISTS "$ENV{ParaView_DIR}") VTK_VERSION "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}" ) -else () +else() message (FATAL_ERROR "VTK not found using VTK_DIR or ParaView_DIR") -endif () +endif() +include(CMakeLists-OpenFOAM.txt) include(CMakeLists-Common.txt) - #----------------------------------------------------------------------------- -- GitLab