Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 15 additions & 22 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,6 @@ if (AMR_WIND_ENABLE_W2A)
endif()

########################### AMR-Wind #####################################

# General information about machine, compiler, and build type
message(STATUS "AMR-Wind Information:")
message(STATUS "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
message(STATUS "CMAKE_CXX_COMPILER_ID = ${CMAKE_CXX_COMPILER_ID}")
Expand All @@ -114,7 +112,6 @@ set(amr_wind_exe_name "amr_wind")
set(amr_wind_unit_test_exe_name "${amr_wind_exe_name}_unit_tests")
set(aw_api_lib "amrwind_api")

#Create main target executable
add_library(${amr_wind_lib_name} OBJECT)
add_library(${aw_api_lib})
add_executable(${amr_wind_exe_name})
Expand Down Expand Up @@ -142,7 +139,7 @@ endif()
if (AMR_WIND_ENABLE_UMPIRE)
set(CMAKE_PREFIX_PATH ${UMPIRE_DIR} ${CMAKE_PREFIX_PATH})
find_package(Umpire REQUIRED)
include_directories(SYSTEM ${UMPIRE_INCLUDE_DIRS})
target_include_directories(${amr_wind_lib_name} SYSTEM ${UMPIRE_INCLUDE_DIRS})
endif()

if(AMR_WIND_ENABLE_HDF5)
Expand Down Expand Up @@ -208,7 +205,6 @@ if(AMR_WIND_ENABLE_ASCENT)
target_compile_definitions(${amr_wind_lib_name} PUBLIC AMR_WIND_USE_ASCENT)
endif()

# Link with HELICS module
if(AMR_WIND_ENABLE_HELICS)
set(CMAKE_PREFIX_PATH ${HELICS_DIR} ${CMAKE_PREFIX_PATH})
find_package(HELICS 3 REQUIRED)
Expand All @@ -226,17 +222,20 @@ if(AMR_WIND_TEST_WITH_PYTHON)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
endif()

#Build amr-wind and link to amrex library
generate_version_info()
add_subdirectory(amr-wind)

target_link_libraries_system(${amr_wind_lib_name} PUBLIC AMReX::amrex AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${amr_wind_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${aw_api_lib} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)

set_target_properties(${amr_wind_lib_name} buildInfo${amr_wind_lib_name}
PROPERTIES POSITION_INDEPENDENT_CODE ON)

if(AMR_WIND_ENABLE_CUDA)
set(awtargets "${amr_wind_lib_name};${amr_wind_exe_name}")
foreach(tgt IN LISTS awtargets)
set_cuda_build_properties(${tgt})
# get_target_property(AMR_WIND_SOURCES ${tgt} SOURCES)
# list(FILTER AMR_WIND_SOURCES INCLUDE REGEX "\\.cpp")
# set_source_files_properties(${AMR_WIND_SOURCES} PROPERTIES LANGUAGE CUDA)
endforeach()
endif()

Expand All @@ -249,12 +248,6 @@ if(AMR_WIND_ENABLE_UNIT_TESTS OR AMR_WIND_ENABLE_TESTS)
add_subdirectory("submods/googletest")
add_subdirectory("unit_tests")
set_cuda_build_properties(${amr_wind_unit_test_exe_name})
# if(AMR_WIND_ENABLE_CUDA)
# get_target_property(UTEST_SOURCES ${amr_wind_unit_test_exe_name} SOURCES)
# set_source_files_properties(${UTEST_SOURCES} PROPERTIES LANGUAGE CUDA)
# set_target_properties(${amr_wind_unit_test_exe_name} PROPERTIES
# CUDA_SEPARABLE_COMPILATION ON)
# endif()
endif()

add_subdirectory(tools)
Expand All @@ -274,14 +267,14 @@ install(
TARGETS ${amr_wind_exe_name}
${aw_api_lib} ${amr_wind_lib_name} buildInfo${amr_wind_lib_name}
EXPORT ${PROJECT_NAME}Targets
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

if(AMR_WIND_ENABLE_UNIT_TESTS OR AMR_WIND_ENABLE_TESTS)
install(
TARGETS ${amr_wind_unit_test_exe_name}
RUNTIME DESTINATION bin)
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()

install(
Expand All @@ -292,15 +285,15 @@ install(
install(
EXPORT ${PROJECT_NAME}Targets
NAMESPACE ${PROJECT_NAME}::
DESTINATION lib/cmake/${PROJECT_NAME})
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})

configure_package_config_file(
cmake/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME})
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
DESTINATION lib/cmake/${PROJECT_NAME})
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
install(FILES
${PROJECT_SOURCE_DIR}/cmake/FindMASA.cmake
${PROJECT_SOURCE_DIR}/cmake/FindNetCDF.cmake
Expand Down
18 changes: 0 additions & 18 deletions amr-wind/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@ target_sources(${amr_wind_lib_name}

target_sources(${amr_wind_exe_name} PRIVATE main.cpp)

#AMR-Wind include directories
target_include_directories(${amr_wind_lib_name} PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
$<INSTALL_INTERFACE:include>)

#Gather all other source files
add_subdirectory(core)
add_subdirectory(boundary_conditions)
add_subdirectory(convection)
Expand All @@ -38,28 +36,12 @@ add_subdirectory(eos_models)
include(AMReXBuildInfo)
generate_buildinfo(${amr_wind_lib_name} ${PROJECT_SOURCE_DIR})

# Generate AMR-Wind version header
configure_file("${PROJECT_SOURCE_DIR}/cmake/AMRWindVersion.H.in"
"${CMAKE_CURRENT_BINARY_DIR}/AMRWindVersion.H" @ONLY)

target_link_libraries_system(${amr_wind_lib_name} PUBLIC AMReX::amrex AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${amr_wind_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${aw_api_lib} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)

if (AMR_WIND_ENABLE_W2A)
target_link_libraries_system(${amr_wind_lib_name} PUBLIC Waves2AMR::waves_2_amr_api)
target_link_libraries(${amr_wind_exe_name} PRIVATE ${amr_wind_lib_name} Waves2AMR::waves_2_amr_api)
target_link_libraries(${aw_api_lib} PUBLIC ${amr_wind_lib_name} Waves2AMR::waves_2_amr_api)
endif()

# Set -fpic options
set_target_properties(${amr_wind_lib_name} buildInfo${amr_wind_lib_name}
PROPERTIES POSITION_INDEPENDENT_CODE ON)

file(GLOB_RECURSE amr_wind_header_list ${CMAKE_CURRENT_SOURCE_DIR} "*.H")
add_custom_target(amr_wind_headers SOURCES ${amr_wind_header_list})

# Add CMake-generated headers to installation
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/AMRWindVersion.H
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
21 changes: 8 additions & 13 deletions cmake/AMR-WindConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,21 @@ set(AMR_WIND_ENABLE_W2A @AMR_WIND_ENABLE_W2A@)
set(AMR_WIND_ENABLE_MASA @AMR_WIND_ENABLE_MASA@)
set(AMR_WIND_ENABLE_NETCDF @AMR_WIND_ENABLE_NETCDF@)

set(AMReX_DIR "${CMAKE_CURRENT_LIST_DIR}/../AMReX")
find_package(AMReX QUIET REQUIRED)
include(CMakeFindDependencyMacro)

set(AMReX-Hydro_DIR "${CMAKE_CURRENT_LIST_DIR}/../AMReX-Hydro")
find_package(AMReX-Hydro QUIET REQUIRED)
find_dependency(AMReX)
find_dependency(AMReX-Hydro)

set(Waves2AMR_DIR "${CMAKE_CURRENT_LIST_DIR}/../Waves2AMR")
if (AMR_WIND_ENABLE_W2A)
find_package(Waves2AMR QUIET REQUIRED)
find_dependency(Waves2AMR)
endif()

if (${AMR_WIND_ENABLE_MASA})
set(MASA_DIR @MASA_DIR@)
find_package(MASA QUIET REQUIRED)
if (AMR_WIND_ENABLE_MASA)
find_dependency(MASA)
endif()

if (${AMR_WIND_ENABLE_NETCDF})
set(NetCDF_DIR @NETCDF_DIR@)
set(NETCDF_DIR @NETCDF_DIR@)
find_package(NetCDF QUIET REQUIRED)
if (AMR_WIND_ENABLE_NETCDF)
find_dependency(NetCDF)
endif()

set(AMR_WIND_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@")
Expand Down
2 changes: 1 addition & 1 deletion submods/Waves2AMR
9 changes: 3 additions & 6 deletions tools/utilities/CheckpointToCSV/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@ target_sources(${tool_exe_name}

target_include_directories(${tool_exe_name} PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
target_link_libraries(${tool_exe_name} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${tool_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
if (AMR_WIND_ENABLE_W2A)
target_link_libraries(${tool_exe_name} PUBLIC Waves2AMR::waves_2_amr_api)
target_link_libraries(${tool_exe_name} PRIVATE Waves2AMR::Waves2AMR)
endif()
set_cuda_build_properties(${tool_exe_name})

install(TARGETS ${tool_exe_name}
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(TARGETS ${tool_exe_name})
9 changes: 3 additions & 6 deletions tools/utilities/PlotfileToCSV/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,10 @@ target_sources(${tool_exe_name}

target_include_directories(${tool_exe_name} PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
target_link_libraries(${tool_exe_name} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${tool_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
if (AMR_WIND_ENABLE_W2A)
target_link_libraries(${tool_exe_name} PUBLIC Waves2AMR::waves_2_amr_api)
target_link_libraries(${tool_exe_name} PRIVATE Waves2AMR::Waves2AMR)
endif()
set_cuda_build_properties(${tool_exe_name})

install(TARGETS ${tool_exe_name}
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(TARGETS ${tool_exe_name})
9 changes: 3 additions & 6 deletions tools/utilities/coarsen-chkpt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@ target_sources(${tool_exe_name}

target_include_directories(${tool_exe_name} PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
target_link_libraries(${tool_exe_name} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${tool_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
if (AMR_WIND_ENABLE_W2A)
target_link_libraries(${tool_exe_name} PUBLIC Waves2AMR::waves_2_amr_api)
target_link_libraries(${tool_exe_name} PRIVATE Waves2AMR::Waves2AMR)
endif()
set_cuda_build_properties(${tool_exe_name})

install(TARGETS ${tool_exe_name}
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(TARGETS ${tool_exe_name})
9 changes: 3 additions & 6 deletions tools/utilities/refine-chkpt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@ target_sources(${tool_exe_name}

target_include_directories(${tool_exe_name} PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
target_link_libraries(${tool_exe_name} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${tool_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
if (AMR_WIND_ENABLE_W2A)
target_link_libraries(${tool_exe_name} PUBLIC Waves2AMR::waves_2_amr_api)
target_link_libraries(${tool_exe_name} PRIVATE Waves2AMR::Waves2AMR)
endif()
set_cuda_build_properties(${tool_exe_name})

install(TARGETS ${tool_exe_name}
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(TARGETS ${tool_exe_name})
16 changes: 5 additions & 11 deletions unit_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,18 @@ if(AMR_WIND_ENABLE_MASA)
add_subdirectory(mms)
endif()

target_compile_options(
${amr_wind_unit_test_exe_name} PRIVATE
target_compile_options(${amr_wind_unit_test_exe_name} PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:${AMR_WIND_CXX_FLAGS}>)
target_include_directories(${amr_wind_unit_test_exe_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

#Link our unit test executable with GoogleTest
#target_link_libraries(${utest_exe_name} PRIVATE GTest::GTest GTest::Main)
target_link_libraries(${amr_wind_unit_test_exe_name} PRIVATE gtest)
target_include_directories(${amr_wind_unit_test_exe_name} SYSTEM PRIVATE
${CMAKE_SOURCE_DIR}/submods/googletest/googletest/include)
${PROJECT_SOURCE_DIR}/submods/googletest/googletest/include)

target_link_libraries(${amr_wind_unit_test_exe_name} PUBLIC ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
target_link_libraries(${amr_wind_unit_test_exe_name} PRIVATE ${amr_wind_lib_name} AMReX-Hydro::amrex_hydro_api)
if (AMR_WIND_ENABLE_W2A)
target_link_libraries(${amr_wind_unit_test_exe_name} PUBLIC Waves2AMR::waves_2_amr_api)
target_link_libraries(${amr_wind_unit_test_exe_name} PRIVATE Waves2AMR::Waves2AMR)
endif()

#Define what we want to be installed during a make install
install(TARGETS ${amr_wind_unit_test_exe_name}
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib)
install(TARGETS ${amr_wind_unit_test_exe_name})
1 change: 0 additions & 1 deletion unit_tests/aw_test_utils/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
target_sources(
${amr_wind_unit_test_exe_name} PRIVATE

pp_utils.cpp
AmrTestMesh.cpp
MeshTest.cpp
Expand Down
1 change: 0 additions & 1 deletion unit_tests/utilities/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
target_sources(${amr_wind_unit_test_exe_name} PRIVATE

test_refinement.cpp
test_plane_averaging.cpp
test_field_plane_averaging.cpp
Expand Down