COMP: handle unset WM_OSTYPE for cmake targets (issue #909)

- regularise referencing of OpenFOAM env variables, sources etc.
This commit is contained in:
Mark Olesen
2018-06-26 09:48:57 +02:00
parent df9c675c84
commit a410f52e6d
5 changed files with 121 additions and 50 deletions

View File

@ -5,24 +5,53 @@ cmake_minimum_required(VERSION 2.8)
find_package(ParaView REQUIRED) find_package(ParaView REQUIRED)
include(${PARAVIEW_USE_FILE}) 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( link_directories(
$ENV{FOAM_LIBBIN} $ENV{FOAM_LIBBIN}
) )
include_directories( include_directories(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude ${LIB_SRC}/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/conversion/lnInclude ${LIB_SRC}/conversion/lnInclude
$ENV{WM_PROJECT_DIR}/src/finiteArea/lnInclude ${LIB_SRC}/finiteArea/lnInclude
$ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude ${LIB_SRC}/finiteVolume/lnInclude
${PROJECT_SOURCE_DIR}/../foamPv ${PROJECT_SOURCE_DIR}/../foamPv
${PROJECT_SOURCE_DIR}/../vtkPVFoam ${PROJECT_SOURCE_DIR}/../vtkPVFoam
) )
add_definitions( set(OPENFOAM_LIBRARIES
-std=c++11 OpenFOAM
-DWM_$ENV{WM_PRECISION_OPTION} finiteVolume
-DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} finiteArea
conversion
) )
# Set output library destination to plugin directory # Set output library destination to plugin directory
@ -66,10 +95,7 @@ target_link_libraries(
LINK_PUBLIC LINK_PUBLIC
vtkPVFoam-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} vtkPVFoam-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
conversion ${OPENFOAM_LIBRARIES}
finiteArea
finiteVolume
OpenFOAM
) )
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------

View File

@ -9,18 +9,44 @@ link_directories(
$ENV{FOAM_LIBBIN} $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( include_directories(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude ${LIB_SRC}/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/meshing/blockMesh/lnInclude ${LIB_SRC}/meshing/blockMesh/lnInclude
${PROJECT_SOURCE_DIR}/../foamPv ${PROJECT_SOURCE_DIR}/../foamPv
${PROJECT_SOURCE_DIR}/../vtkPVblockMesh ${PROJECT_SOURCE_DIR}/../vtkPVblockMesh
) )
add_definitions( set(OPENFOAM_LIBRARIES
-std=c++11 OpenFOAM
-DWM_$ENV{WM_PRECISION_OPTION} blockMesh
-DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE}
) )
# Set output library destination to plugin directory # Set output library destination to plugin directory
@ -64,8 +90,7 @@ target_link_libraries(
LINK_PUBLIC LINK_PUBLIC
vtkPVblockMesh-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} vtkPVblockMesh-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR} foamPv-pv${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}
blockMesh ${OPENFOAM_LIBRARIES}
OpenFOAM
) )
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------

View File

@ -1,3 +1,5 @@
#-----------------------------------------------------------------------------
include(${VTK_USE_FILE}) include(${VTK_USE_FILE})
if(VTK_LIBRARIES) if(VTK_LIBRARIES)
@ -7,15 +9,15 @@ endif()
if(${VTK_VERSION} VERSION_GREATER "6") if(${VTK_VERSION} VERSION_GREATER "6")
message("VTK version: " ${VTK_VERSION}) message("VTK version: " ${VTK_VERSION})
else() else()
message(FATAL_ERROR " VTK6 required") message(FATAL_ERROR " VTK version is too old - requires VTK6 or newer")
endif() endif()
include_directories( include_directories(
$ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude ${LIB_SRC}/OpenFOAM/lnInclude
$ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude ${LIB_SRC}/OSspecific/${WM_OSTYPE}/lnInclude
$ENV{WM_PROJECT_DIR}/src/surfMesh/lnInclude ${LIB_SRC}/finiteVolume/lnInclude
$ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude ${LIB_SRC}/surfMesh/lnInclude
$ENV{WM_PROJECT_DIR}/src/conversion/lnInclude ${LIB_SRC}/conversion/lnInclude
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
) )
@ -24,22 +26,8 @@ link_directories(
$ENV{FOAM_LIBBIN} $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_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 output library destination to plugin directory
set(LIBRARY_OUTPUT_PATH $ENV{FOAM_LIBBIN} set(LIBRARY_OUTPUT_PATH $ENV{FOAM_LIBBIN}
CACHE INTERNAL CACHE INTERNAL
@ -72,8 +60,8 @@ file(GLOB SOURCE_FILES
set(OPENFOAM_LIBRARIES set(OPENFOAM_LIBRARIES
OpenFOAM OpenFOAM
surfMesh
finiteVolume finiteVolume
surfMesh
conversion conversion
) )
@ -84,10 +72,10 @@ add_library(
) )
set_target_properties( set_target_properties(
runTimePostProcessing runTimePostProcessing
PROPERTIES PROPERTIES
VERSION ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION} VERSION ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}
SOVERSION ${VTK_MAJOR_VERSION} SOVERSION ${VTK_MAJOR_VERSION}
) )
target_link_libraries( target_link_libraries(

View File

@ -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"
)
#-----------------------------------------------------------------------------

View File

@ -17,11 +17,11 @@ elseif (EXISTS "$ENV{ParaView_DIR}")
VTK_VERSION VTK_VERSION
"${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}" "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}"
) )
else () else()
message (FATAL_ERROR "VTK not found using VTK_DIR or ParaView_DIR") message (FATAL_ERROR "VTK not found using VTK_DIR or ParaView_DIR")
endif () endif()
include(CMakeLists-OpenFOAM.txt)
include(CMakeLists-Common.txt) include(CMakeLists-Common.txt)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------