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.
91 lines
2.8 KiB
91 lines
2.8 KiB
2 years ago
|
TRIBITS_SUBPACKAGE(Exodus)
|
||
|
|
||
|
if (SEACASExodus_ENABLE_STATIC)
|
||
|
INCLUDE(InstallSymLink)
|
||
|
endif()
|
||
|
|
||
|
TRIBITS_INCLUDE_DIRECTORIES(
|
||
|
"${CMAKE_CURRENT_SOURCE_DIR}/include"
|
||
|
)
|
||
|
|
||
|
FILE(GLOB SOURCES src/ex_*.c)
|
||
|
|
||
|
if (NOT ${PACKAGE_NAME}_HIDE_DEPRECATED_CODE)
|
||
|
FILE(GLOB DEP_SOURCES src/deprecated/ex_*.c)
|
||
|
endif()
|
||
|
TRIBITS_CONFIGURE_FILE(exodus_config.h)
|
||
|
|
||
|
if (NOT ${EXODUS_THREADSAFE})
|
||
|
list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/ex_threadsafe.c)
|
||
|
endif()
|
||
|
|
||
|
TRIBITS_SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||
|
|
||
|
SET(HEADERS
|
||
|
include/exodusII.h
|
||
|
include/exodusII_int.h
|
||
|
include/exodusII_par.h
|
||
|
${CMAKE_CURRENT_BINARY_DIR}/exodus_config.h
|
||
|
)
|
||
|
|
||
|
TRIBITS_ADD_LIBRARY(
|
||
|
exodus
|
||
|
HEADERS ${HEADERS}
|
||
|
SOURCES ${SOURCES} ${DEP_SOURCES}
|
||
|
)
|
||
|
|
||
|
set_property(TARGET exodus PROPERTY C_STANDARD 99)
|
||
|
|
||
|
if (SEACASExodus_ENABLE_SHARED)
|
||
|
if (NOT BUILD_SHARED_LIBS)
|
||
|
TRIBITS_ADD_LIBRARY(
|
||
|
exodus_shared
|
||
|
SHARED
|
||
|
SOURCES ${SOURCES} ${DEP_SOURCES}
|
||
|
IMPORTEDLIBS ${TPL_Netcdf_LIBRARIES}
|
||
|
)
|
||
|
set_property(TARGET exodus_shared PROPERTY C_STANDARD 99)
|
||
|
set_target_properties(exodus_shared PROPERTIES OUTPUT_NAME exodus)
|
||
|
INSTALL(TARGETS exodus_shared DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
# Many users of the SEACAS installations still want a static exodus library...
|
||
|
if (SEACASExodus_ENABLE_STATIC)
|
||
|
# NOTE: If use `TRIBITS_ADD_LIBRARY` here, then both exodus and exodus_static linked to all executables.
|
||
|
ADD_LIBRARY(
|
||
|
exodus_static
|
||
|
STATIC
|
||
|
${SOURCES} ${DEP_SOURCES}
|
||
|
)
|
||
|
target_include_directories(exodus_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||
|
target_link_libraries(exodus_static PUBLIC Netcdf::all_libs)
|
||
|
set_property(TARGET exodus_static PROPERTY C_STANDARD 99)
|
||
|
# This keeps the library out of the `all_libs` targets...
|
||
|
set_target_properties(exodus_static PROPERTIES TRIBITS_TESTONLY_LIB TRUE)
|
||
|
set_target_properties(exodus_static PROPERTIES OUTPUT_NAME exodus)
|
||
|
INSTALL(TARGETS exodus_static DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||
|
|
||
|
# For backwards compatibility, the C exodus library was called libexoIIv2c.a
|
||
|
# Create a symbolic link from libexodus.a to libexoIIv2c.a -- do only for static lib
|
||
|
InstallSymLink(libexodus.a ${CMAKE_INSTALL_PREFIX}/lib/libexoIIv2c.a)
|
||
|
endif()
|
||
|
|
||
|
if (${CMAKE_PROJECT_NAME} STREQUAL "Seacas")
|
||
|
# add a target to generate API documentation with Doxygen
|
||
|
if(Seacas_ENABLE_DOXYGEN)
|
||
|
find_package(Doxygen)
|
||
|
if(DOXYGEN_FOUND)
|
||
|
add_custom_command(TARGET exodus POST_BUILD
|
||
|
COMMAND ${DOXYGEN_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
|
||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||
|
COMMENT "Generating Exodus API documentation with Doxygen" VERBATIM
|
||
|
)
|
||
|
endif(DOXYGEN_FOUND)
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
TRIBITS_ADD_TEST_DIRECTORIES(test)
|
||
|
|
||
|
TRIBITS_SUBPACKAGE_POSTPROCESS()
|