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
1 change: 1 addition & 0 deletions .gersemirc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
indent: 2
68 changes: 41 additions & 27 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,53 +1,67 @@
cmake_minimum_required(VERSION 3.16)

set(PROJECT_NAME dolfinx-scaling-test)
project(${PROJECT_NAME})
project(dolfinx-scaling-test)

include(GNUInstallDirs)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

# Use C++20
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# Get DOLFIN configuration data (DOLFINConfig.cmake must be in
# DOLFIN_CMAKE_CONFIG_PATH)
find_package(DOLFINX REQUIRED)

set(CMAKE_CXX_FLAGS "-O3 -ffast-math ${CMAKE_CXX_FLAGS} -g -Wall")
set(CMAKE_C_FLAGS "-O3 -ffast-math ${CMAKE_C_FLAGS} -g -Wall")
find_package(Threads REQUIRED)

# Compile UFL files
add_custom_command(
OUTPUT Poisson.c
COMMAND ffcx ${CMAKE_CURRENT_SOURCE_DIR}/Poisson.py
DEPENDS Poisson.py
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Poisson.py
VERBATIM
)

add_custom_command(
OUTPUT Elasticity.c
COMMAND ffcx ${CMAKE_CURRENT_SOURCE_DIR}/Elasticity.py
DEPENDS Elasticity.py
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Elasticity.py
VERBATIM
)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Executable
add_executable(${PROJECT_NAME} main.cpp mesh.cpp elasticity_problem.cpp cgpoisson_problem.cpp poisson_problem.cpp mem.cpp
${CMAKE_CURRENT_BINARY_DIR}/Elasticity.c
${CMAKE_CURRENT_BINARY_DIR}/Poisson.c)

# Find Boost program_options
if(DEFINED ENV{BOOST_ROOT} OR DEFINED BOOST_ROOT)
set(Boost_NO_SYSTEM_PATHS on)
set(Boost_NO_SYSTEM_PATHS ON)
endif()
# set(Boost_USE_MULTITHREADED $ENV{BOOST_USE_MULTITHREADED})
set(Boost_VERBOSE TRUE)
find_package(Boost 1.70 REQUIRED program_options)

# Target libraries
target_link_libraries(${PROJECT_NAME} dolfinx Boost::program_options pthread)
add_executable(
${PROJECT_NAME}
main.cpp
mesh.cpp
elasticity_problem.cpp
cgpoisson_problem.cpp
poisson_problem.cpp
mem.cpp
${CMAKE_CURRENT_BINARY_DIR}/Elasticity.c
${CMAKE_CURRENT_BINARY_DIR}/Poisson.c
)

target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)

set_target_properties(
${PROJECT_NAME}
PROPERTIES
CXX_EXTENSIONS OFF
INSTALL_RPATH_USE_LINK_PATH TRUE
)

set(COMPILE_FLAGS -O3 -ffast-math -g -Wall)
target_compile_options(${PROJECT_NAME} PRIVATE ${COMPILE_FLAGS})

target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})

target_link_libraries(
${PROJECT_NAME}
dolfinx::dolfinx
Boost::program_options
Threads::Threads
)

message(STATUS "Compile flags: ${COMPILE_FLAGS}")

message(STATUS ${CMAKE_CXX_FLAGS})
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Loading