diff --git a/example/CMakeProject/ALL_Staggered.cpp b/example/CMakeProject/ALL_Staggered.cpp new file mode 120000 index 0000000000000000000000000000000000000000..8bca7c2bfb9323f5e40ba4b3d616cf451accc289 --- /dev/null +++ b/example/CMakeProject/ALL_Staggered.cpp @@ -0,0 +1 @@ +../ALL_Staggered.cpp \ No newline at end of file diff --git a/example/CMakeProject/ALL_Staggered_f.F90 b/example/CMakeProject/ALL_Staggered_f.F90 new file mode 120000 index 0000000000000000000000000000000000000000..824e45ef989b09920cc0a5660a3403b88361d251 --- /dev/null +++ b/example/CMakeProject/ALL_Staggered_f.F90 @@ -0,0 +1 @@ +../ALL_Staggered_f.F90 \ No newline at end of file diff --git a/example/CMakeProject/CMakeLists.txt b/example/CMakeProject/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..3640e5738bf4a4f6e7283761d36c10df249bcfbf --- /dev/null +++ b/example/CMakeProject/CMakeLists.txt @@ -0,0 +1,24 @@ +# REMEMBER TO SET CC AND CXX! CMake is too dumb to find compiler in your path! +# mkdcd build +# CC=gcc CXX=g++ cmake -DALL_DIR=`pwd`/../../jall_bin/lib/cmake/ALL ../ + +cmake_minimum_required(VERSION 3.14) +project(ALL_Staggered) + +enable_language(CXX) +enable_language(Fortran) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +find_package(MPI REQUIRED COMPONENTS CXX Fortran) +find_package(ALL 0.9.1) + +add_executable(ALL_Staggered ALL_Staggered.cpp) +target_link_libraries(ALL_Staggered PRIVATE ALL::ALL) + +add_executable(ALL_Staggered_f ALL_Staggered_f.F90) +target_link_libraries(ALL_Staggered_f LINK_PRIVATE ALL::ALL) +target_link_libraries(ALL_Staggered_f LINK_PRIVATE ALL::ALL_fortran) +set_property(TARGET ALL_Staggered_f PROPERTY LINKER_LANGUAGE Fortran) +#todo(s.schulz): link against MPI diff --git a/example/CMakeProject/build_all.sh b/example/CMakeProject/build_all.sh new file mode 100755 index 0000000000000000000000000000000000000000..e059c34dbdfbb41b864c211022667654703c95f3 --- /dev/null +++ b/example/CMakeProject/build_all.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# all commands must execute successfully +set -e +set -o pipefail +set -u +set -x + +# $ALL_INSTALL_DIR must be an absolute path! +ALL_ROOT_DIR=../.. +ALL_BUILD_DIR=all_build +ALL_INSTALL_DIR=`pwd`/all_bin +BUILD_DIR=build + +export CC=gcc +export CXX=g++ + +build_all () { + rm -rf "$ALL_BUILD_DIR" + mkdir "$ALL_BUILD_DIR" + cmake -S "$ALL_ROOT_DIR" -B "$ALL_BUILD_DIR"\ + -DCMAKE_INSTALL_PREFIX="$ALL_INSTALL_DIR"\ + -DCM_ALL_FORTRAN=ON\ + -DCMAKE_BUILD_TYPE=Release + + cmake --build "$ALL_BUILD_DIR" + rm -rf "ALL_INSTALL_DIR" + cmake --install "$ALL_BUILD_DIR" +} + +build_self () { + rm -rf "$BUILD_DIR" + mkdir "$BUILD_DIR" + cmake -S . -B "$BUILD_DIR"\ + -DALL_DIR="$ALL_INSTALL_DIR"/lib/cmake/ALL + + cmake --build "$BUILD_DIR" +} + +build_all +build_self diff --git a/example/CMakeProject/build_all_relocated.sh b/example/CMakeProject/build_all_relocated.sh new file mode 100755 index 0000000000000000000000000000000000000000..b5dc3c5ce09d39c78bdea2f8fc7ea335c65e0034 --- /dev/null +++ b/example/CMakeProject/build_all_relocated.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# all commands must execute successfully +set -e +set -o pipefail +set -u +set -x + +# $ALL_INSTALL_DIR must be an absolute path! +ALL_ROOT_DIR=../.. +ALL_BUILD_DIR=all_build +ALL_INSTALL_DIR=`pwd`/all_bin +ALL_INSTALL_DIR2=`pwd`/all_bin2 +BUILD_DIR=build + +export CC=gcc +export CXX=g++ + +build_all () { + rm -rf "$ALL_BUILD_DIR" + mkdir "$ALL_BUILD_DIR" + cmake -S "$ALL_ROOT_DIR" -B "$ALL_BUILD_DIR"\ + -DCMAKE_INSTALL_PREFIX="$ALL_INSTALL_DIR"\ + -DCM_ALL_FORTRAN=ON\ + -DCMAKE_BUILD_TYPE=Release + + cmake --build "$ALL_BUILD_DIR" + rm -rf "ALL_INSTALL_DIR" + cmake --install "$ALL_BUILD_DIR" + mv "$ALL_INSTALL_DIR" "$ALL_INSTALL_DIR2" +} + +build_self () { + rm -rf "$BUILD_DIR" + mkdir "$BUILD_DIR" + cmake -S . -B "$BUILD_DIR"\ + -DALL_DIR="$ALL_INSTALL_DIR2"/lib/cmake/ALL + + cmake --build "$BUILD_DIR" +} + +build_all +build_self