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.
113 lines
3.6 KiB
113 lines
3.6 KiB
|
|
#
|
|
# A) Define the package
|
|
#
|
|
|
|
TRIBITS_PACKAGE_DECL( SEACAS ENABLE_SHADOWING_WARNINGS )
|
|
|
|
TRIBITS_ADD_DEBUG_OPTION()
|
|
TRIBITS_ADD_SHOW_DEPRECATED_WARNINGS_OPTION()
|
|
|
|
TRIBITS_ADD_OPTION_AND_DEFINE(
|
|
SEACASExodus_ENABLE_THREADSAFE
|
|
EXODUS_THREADSAFE
|
|
"Enable thread-safe version of Exodus."
|
|
OFF
|
|
)
|
|
|
|
set(${PROJECT_NAME}_C_Standard_DEFAULT c99)
|
|
|
|
SET(${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT 17)
|
|
SET(${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED "(14|17|20)")
|
|
ADVANCED_SET(CMAKE_CXX_STANDARD ${${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT}
|
|
CACHE STRING
|
|
"C++ standard number with values ${${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED} (default ${${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT})")
|
|
IF (NOT CMAKE_CXX_STANDARD MATCHES "^${${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED}$")
|
|
MESSAGE(FATAL_ERROR
|
|
"CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} is not in the allowed set "
|
|
"${${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED}")
|
|
ENDIF ()
|
|
|
|
set(SEACASExodus_ENABLE_STATIC_DEFAULT "OFF")
|
|
set(SEACASExodus_ENABLE_SHARED_DEFAULT "OFF")
|
|
|
|
# On windows (and probably other systems), we only want a single
|
|
# exodus library and not both static and shared.
|
|
if (NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
|
|
if (${CMAKE_PROJECT_NAME} STREQUAL "Seacas")
|
|
if (BUILD_SHARED_LIBS)
|
|
set(SEACASExodus_ENABLE_STATIC_DEFAULT "ON")
|
|
else()
|
|
set(SEACASExodus_ENABLE_SHARED_DEFAULT "ON")
|
|
endif()
|
|
endif()
|
|
|
|
TRIBITS_ADD_OPTION_AND_DEFINE(
|
|
SEACASExodus_ENABLE_STATIC
|
|
EXODUS_STATIC
|
|
"Build static version of Exodus in addition to shared version."
|
|
${SEACASExodus_ENABLE_STATIC_DEFAULT}
|
|
)
|
|
TRIBITS_ADD_OPTION_AND_DEFINE(
|
|
SEACASExodus_ENABLE_SHARED
|
|
EXODUS_SHARED
|
|
"Build shared version of Exodus in addition to static version."
|
|
${SEACASExodus_ENABLE_SHARED_DEFAULT}
|
|
)
|
|
endif()
|
|
|
|
TRIBITS_ADD_OPTION_AND_DEFINE(
|
|
SEACASIoss_ENABLE_THREADSAFE
|
|
IOSS_THREADSAFE
|
|
"Enable thread-safe version of Ioss."
|
|
OFF
|
|
)
|
|
|
|
ADVANCED_SET(${CMAKE_PROJECT_NAME}_ENABLE_SEACASIoss_Applications ON CACHE BOOL
|
|
"Build the io_shell, io_info, io_modify and other ioss executables")
|
|
|
|
IF (NOT ${PROJECT_NAME}_ENABLE_Fortran)
|
|
# For some reason, this variable is undefined if fortran is disabled and it causes a cmake error.
|
|
# define it to a nonsense variable to avoid error.
|
|
IF (NOT CMAKE_Fortran_LINK_EXECUTABLE)
|
|
MESSAGE("-- "
|
|
"WARNING: Setting CMAKE_Fortran_LINK_EXECUTABLE to a random value to avoid CMake error"
|
|
)
|
|
SET(CMAKE_Fortran_LINK_EXECUTABLE empty)
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
ASSERT_DEFINED(TPL_ENABLE_Pthread)
|
|
IF (SEACASExodus_ENABLE_THREADSAFE AND NOT TPL_ENABLE_Pthread)
|
|
MESSAGE(FATAL_ERROR "You set SEACASExodus_ENABLE_THREADSAFE=ON, but TriBITs support for Pthread(s) is not enabled (TPL_ENABLE_Pthread=OFF). This is not allowed. Please enable Pthreads before attempting to enable the thread-safe Exodus support.")
|
|
ENDIF ()
|
|
IF (SEACASIoss_ENABLE_THREADSAFE AND NOT TPL_ENABLE_Pthread)
|
|
MESSAGE(FATAL_ERROR "You set SEACASIoss_ENABLE_THREADSAFE=ON, but TriBITs support for Pthread(s) is not enabled (TPL_ENABLE_Pthread=OFF). This is not allowed. Please enable Pthreads before attempting to enable the thread-safe IOSS support.")
|
|
ENDIF ()
|
|
|
|
# C) Add the libraries, tests, and examples
|
|
#- Add executable that will be installed in bin dir...
|
|
#
|
|
# ADD_BIN_EXECUTABLE(<executable>)
|
|
#
|
|
function(install_executable target)
|
|
IF (TARGET ${target})
|
|
INSTALL(TARGETS ${target} COMPONENT ${PACKAGE_NAME} RUNTIME DESTINATION ${${PROJECT_NAME}_INSTALL_RUNTIME_DIR})
|
|
ENDIF()
|
|
endfunction()
|
|
|
|
TRIBITS_PROCESS_SUBPACKAGES()
|
|
|
|
TRIBITS_PACKAGE_DEF()
|
|
|
|
ADD_SUBDIRECTORY(scripts)
|
|
|
|
TRIBITS_EXCLUDE_FILES(
|
|
doc
|
|
)
|
|
|
|
#
|
|
# D) Do standard postprocessing
|
|
#
|
|
|
|
TRIBITS_PACKAGE_POSTPROCESS()
|
|
|