Cloned SEACAS for EXODUS library with extra build files for internal package management.
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.
 
 
 
 
 
 

72 lines
2.7 KiB

cmake_minimum_required(VERSION 3.23.1)
project(TribitsOldSimpleExApp
DESCRIPTION
"Example raw CMake project using packages installed from new or old TribitsExampleProject"
VERSION 0.0.0
LANGUAGES NONE # Defined below after reading in compilers
)
find_package(TribitsExProj REQUIRED
COMPONENTS SimpleCxx MixedLang WithSubpackages)
message("Setting compilers and flags read in from 'TribitsExProjConfig.cmake' file:")
set(CMAKE_CXX_COMPILER ${TribitsExProj_CXX_COMPILER} )
set(CMAKE_C_COMPILER ${TribitsExProj_C_COMPILER} )
set(CMAKE_Fortran_COMPILER ${TribitsExProj_Fortran_COMPILER} )
set(CMAKE_CXX_FLAGS "${TribitsExProj_CXX_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_C_FLAGS "${TribitsExProj_C_COMPILER_FLAGS} ${CMAKE_C_FLAGS}")
set(CMAKE_Fortran_FLAGS "${TribitsExProj_Fortran_COMPILER_FLAGS} ${CMAKE_Fortran_FLAGS}")
# Enable the compilers now that we have gotten them from TribitsExProjConfig.cmake
enable_language(C)
enable_language(CXX)
if (CMAKE_Fortran_COMPILER)
enable_language(Fortran)
endif()
# Build a utility and link to libraries from WithSubpackagesB
add_executable(util util.cpp)
if (${PROJECT_NAME}_USE_DEPRECATED_TARGETS)
target_link_libraries(util PRIVATE pws_b)
# NOTE: Above will generate a DEPRECATION warning for newer TriBITS
# versions!
else()
target_link_libraries(util PRIVATE ${WithSubpackagesB_LIBRARIES})
# NOTE: Above is the correct way to link against libraries from an
# individual package for old and new TriBITS!
endif()
target_include_directories(util
PRIVATE ${SimpleCxx_INCLUDE_DIRS} ${SimpleCxx_TPL_INCLUDE_DIRS})
# Build the APP and link to libraries from TribitsExProj packages
add_executable(app app.cpp)
target_link_libraries(app
PRIVATE ${TribitsExProj_LIBRARIES} ${TribitsExProj_TPL_LIBRARIES})
target_include_directories(app
PRIVATE ${TribitsExProj_INCLUDE_DIRS} ${TribitsExProj_TPL_INCLUDE_DIRS})
# Set up tests
enable_testing()
if ("SimpleTpl" IN_LIST TribitsExProj_TPL_LIST OR TARGET SimpleTpl::all_libs)
set(simpleCxxDeps "simpletpl headeronlytpl")
else()
set(simpleCxxDeps "headeronlytpl")
endif()
# NOTE: Above, TribitsExProj_TPL_LIST does not exist in new TriBITS so to make
# this work for new TriBITS as well, we need to check for target
# SimpleTpl::all_libs. Small price to pay for progress!
add_test(NAME util_test COMMAND util)
set_tests_properties(util_test PROPERTIES
PASS_REGULAR_EXPRESSION "Util Deps: B A SimpleCxx ${simpleCxxDeps} SimpleCxx ${simpleCxxDeps}"
)
add_test(NAME app_test COMMAND app)
set_tests_properties(app_test PROPERTIES
PASS_REGULAR_EXPRESSION "Full Deps: WithSubpackages:B A SimpleCxx ${simpleCxxDeps} SimpleCxx ${simpleCxxDeps} A SimpleCxx ${simpleCxxDeps}[;] MixedLang:Mixed Language[;] SimpleCxx:${simpleCxxDeps}"
)