mirror of
https://github.com/cosmo-sims/monofonIC.git
synced 2024-09-19 17:03:45 +02:00
Added CLASS as a submodule.
This commit is contained in:
parent
55b109da47
commit
54c5dc6f0e
5 changed files with 72 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
build
|
||||
.vscode
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "external/class"]
|
||||
path = external/class
|
||||
url = https://github.com/lesgourg/class_public.git
|
|
@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.9)
|
|||
set(PRGNAME fastLPT)
|
||||
project(fastLPT)
|
||||
|
||||
# include class submodule
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/external/class.cmake)
|
||||
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -march=native -Wall -fno-omit-frame-pointer -g -fsanitize=address")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native -Wall")
|
||||
|
|
1
external/class
vendored
Submodule
1
external/class
vendored
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 63f3cf18fad0061688b8bf95055765b4793f25c7
|
64
external/class.cmake
vendored
Normal file
64
external/class.cmake
vendored
Normal file
|
@ -0,0 +1,64 @@
|
|||
# initialize the class submodule if necessary
|
||||
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/class/Makefile")
|
||||
message(STATUS "class submodule is initialized.")
|
||||
else()
|
||||
message(STATUS "class submodule is NOT initialized: executing git command")
|
||||
execute_process(COMMAND git submodule update --init -- external/class
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
# list of object files generated by class
|
||||
set(CLASS_OBJECT_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/arrays.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/background.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/common.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/dei_rkck.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/evolver_ndf15.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/evolver_rkck.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/growTable.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/helium.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/history.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/hydrogen.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/hyperspherical.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/hyrectools.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/input.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/lensing.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/nonlinear.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/output.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/parser.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/perturbations.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/primordial.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/quadrature.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/sparse.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/spectra.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/thermodynamics.o
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/build/transfer.o
|
||||
)
|
||||
|
||||
# python3
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
# command to build class using its own makefile
|
||||
add_custom_command(OUTPUT ${CLASS_OBJECT_FILES}
|
||||
COMMAND PYTHON=${Python3_EXECUTABLE} CC=${CMAKE_C_COMPILER} make
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/class
|
||||
)
|
||||
|
||||
# target for class objects
|
||||
add_custom_target(class_objects DEPENDS ${CLASS_OBJECT_FILES})
|
||||
|
||||
# library for class cpp wrappers
|
||||
add_library(class_cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/cpp/Engine.cc
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/cpp/ClassEngine.cc)
|
||||
target_include_directories(class_cpp
|
||||
PRIVATE ${CMAKE_CURRENT_LIST_DIR}/class/include)
|
||||
|
||||
# test executable
|
||||
add_executable(testKlass
|
||||
${CMAKE_CURRENT_LIST_DIR}/class/cpp/testKlass.cc)
|
||||
target_include_directories(testKlass
|
||||
PRIVATE ${CMAKE_CURRENT_LIST_DIR}/class/include)
|
||||
target_link_libraries(testKlass ${CLASS_OBJECT_FILES})
|
||||
target_link_libraries(testKlass class_cpp)
|
||||
add_dependencies(testKlass class_objects)
|
Loading…
Reference in a new issue