diff --git a/CMakeLists.txt b/CMakeLists.txt index 922931a28271de11bb3dfe927849fc825cbb76b3..aeb6c570ae88cfb6aa1b07cc8629e201b2a96a25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,13 +97,10 @@ endif(CM_ALL_USE_F08 AND MPI_Fortran_HAVE_F08_MODULE) if(CM_ALL_VORONOI) message(STATUS "compiling voro++ version in contrib/voro++") add_subdirectory(contrib/voro++) - # set(CM_ALL_VORO_INC contrib/voro++/include) - # set(CM_ALL_VORO_LIB contrib/voro++/src) - #set(CM_ALL_VORO_LIB "-L${CMAKE_BINARY_DIR}/contrib/voro++/src -lvoro") add_compile_options("-DALL_VORONOI_ACTIVE") endif() -set(STB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/contrib/stb) +set(STB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/stb) add_subdirectory(src) add_subdirectory(example) diff --git a/example/CMakeProjectSubdir/ALL_Staggered.cpp b/example/CMakeProjectSubdir/ALL_Staggered.cpp new file mode 120000 index 0000000000000000000000000000000000000000..8bca7c2bfb9323f5e40ba4b3d616cf451accc289 --- /dev/null +++ b/example/CMakeProjectSubdir/ALL_Staggered.cpp @@ -0,0 +1 @@ +../ALL_Staggered.cpp \ No newline at end of file diff --git a/example/CMakeProjectSubdir/ALL_Staggered_f.F90 b/example/CMakeProjectSubdir/ALL_Staggered_f.F90 new file mode 120000 index 0000000000000000000000000000000000000000..824e45ef989b09920cc0a5660a3403b88361d251 --- /dev/null +++ b/example/CMakeProjectSubdir/ALL_Staggered_f.F90 @@ -0,0 +1 @@ +../ALL_Staggered_f.F90 \ No newline at end of file diff --git a/example/CMakeProjectSubdir/CMakeLists.txt b/example/CMakeProjectSubdir/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a7afacce6aca6f91786b62aab9c81e1a7323a7da --- /dev/null +++ b/example/CMakeProjectSubdir/CMakeLists.txt @@ -0,0 +1,30 @@ +# 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(ExampleProject) + +enable_language(CXX) +enable_language(Fortran) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CM_ALL_FORTRAN ON) +#set(CM_ALL_USE_F08 ON) +set(CM_ALL_VORONOI ON) +#set(CM_ALL_VTK_OUTPUT ON) + +add_subdirectory(all) + +#find_package(MPI REQUIRED COMPONENTS CXX Fortran) + +add_executable(EALL_Staggered ALL_Staggered.cpp) +target_link_libraries(EALL_Staggered PRIVATE ALL) + +add_executable(EALL_Staggered_f ALL_Staggered_f.F90) +target_link_libraries(EALL_Staggered_f LINK_PRIVATE ALL) +target_link_libraries(EALL_Staggered_f LINK_PRIVATE ALL_fortran) +set_property(TARGET EALL_Staggered_f PROPERTY LINKER_LANGUAGE Fortran) +#todo(s.schulz): link against MPI diff --git a/example/CMakeProjectSubdir/all_contains_source_tree b/example/CMakeProjectSubdir/all_contains_source_tree new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/example/CMakeProjectSubdir/build_all.sh b/example/CMakeProjectSubdir/build_all.sh new file mode 100755 index 0000000000000000000000000000000000000000..960c622ad9954a6f7a94d0518cfcfd5fab210e34 --- /dev/null +++ b/example/CMakeProjectSubdir/build_all.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +rm -rf build && CC=gcc CXX=g++ cmake -S . -B build && VERBOSE=1 cmake --build build diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 22186485c76aed7d1b9325515c796efb67b9df6d..e8aca7b28cd439be97ed5a2b30aabef4757d1d9f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ALL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) +set(ALL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include) set(ALL_HEADER_FILES ${ALL_INCLUDE_DIR}/ALL_CustomExceptions.hpp ${ALL_INCLUDE_DIR}/ALL_Defines.h @@ -43,7 +43,7 @@ install(FILES ${ALL_HEADER_FILES} DESTINATION include) if (CM_ALL_FORTRAN) - set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/modules) + set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../modules) add_library (ALL_fortran ALL_module.F90) set_property(TARGET ALL_fortran PROPERTY LINKER_LANGUAGE Fortran)