Skip to content

Commit 6825bfb

Browse files
committed
Add initial CMake project structure
1 parent 23c8ec4 commit 6825bfb

File tree

4 files changed

+96
-0
lines changed

4 files changed

+96
-0
lines changed

CMakeLists.txt

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
cmake_minimum_required(VERSION 2.8)
2+
project(symengine.f90)
3+
4+
set(CMAKE_PREFIX_PATH ${SymEngine_DIR} ${CMAKE_PREFIX_PATH})
5+
find_package(SymEngine 0.3.0 REQUIRED CONFIG
6+
PATH_SUFFIXES lib/cmake/symengine cmake/symengine CMake/)
7+
message("SymEngine_DIR : " ${SymEngine_DIR})
8+
set(CMAKE_BUILD_TYPE ${SYMENGINE_BUILD_TYPE})
9+
set(CMAKE_CXX_FLAGS_RELEASE ${SYMENGINE_CXX_FLAGS_RELEASE})
10+
set(CMAKE_CXX_FLAGS_DEBUG ${SYMENGINE_CXX_FLAGS_DEBUG})
11+
include_directories(${SYMENGINE_INCLUDE_DIRS})
12+
13+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
14+
15+
if (MINGW AND ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8"))
16+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DMS_WIN64")
17+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DMS_WIN64")
18+
endif()
19+
20+
if (MINGW AND (CMAKE_BUILD_TYPE STREQUAL "Release"))
21+
try_compile(CHECK_PYTHON_HYPOT "${CMAKE_CURRENT_BINARY_DIR}/" "${CMAKE_SOURCE_DIR}/cmake/check_python_hypot.cpp")
22+
if (NOT ${CHECK_PYTHON_HYPOT})
23+
# include cmath before all headers
24+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -include cmath")
25+
endif()
26+
endif()
27+
28+
if(SYMENGINE_MPC_LIBRARIES)
29+
set(HAVE_SYMENGINE_MPC True)
30+
else()
31+
set(HAVE_SYMENGINE_MPC False)
32+
endif()
33+
34+
if(SYMENGINE_MPFR_LIBRARIES)
35+
set(HAVE_SYMENGINE_MPFR True)
36+
else()
37+
set(HAVE_SYMENGINE_MPFR False)
38+
endif()
39+
40+
if(SYMENGINE_PIRANHA_INCLUDE_DIRS)
41+
set(HAVE_SYMENGINE_PIRANHA True)
42+
else()
43+
set(HAVE_SYMENGINE_PIRANHA False)
44+
endif()
45+
46+
if(SYMENGINE_FLINT_LIBRARIES)
47+
set(HAVE_SYMENGINE_FLINT True)
48+
else()
49+
set(HAVE_SYMENGINE_FLINT False)
50+
endif()
51+
52+
if(SYMENGINE_LLVM_COMPONENTS)
53+
set(HAVE_SYMENGINE_LLVM True)
54+
else()
55+
set(HAVE_SYMENGINE_LLVM False)
56+
endif()
57+
58+
message("CMAKE_BUILD_TYPE : ${CMAKE_BUILD_TYPE}")
59+
message("CMAKE_CXX_FLAGS_RELEASE : ${CMAKE_CXX_FLAGS_RELEASE}")
60+
message("CMAKE_CXX_FLAGS_DEBUG : ${CMAKE_CXX_FLAGS_DEBUG}")
61+
message("HAVE_SYMENGINE_MPFR : ${HAVE_SYMENGINE_MPFR}")
62+
message("HAVE_SYMENGINE_MPC : ${HAVE_SYMENGINE_MPC}")
63+
message("HAVE_SYMENGINE_PIRANHA : ${HAVE_SYMENGINE_PIRANHA}")
64+
message("HAVE_SYMENGINE_FLINT : ${HAVE_SYMENGINE_FLINT}")
65+
message("HAVE_SYMENGINE_LLVM : ${HAVE_SYMENGINE_LLVM}")
66+
67+
add_subdirectory(src)

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,17 @@
11
# symengine.f90
2+
23
Fortran wrappers of SymEngine
4+
5+
## Installation
6+
7+
Install SymEngine:
8+
9+
cmake -DCMAKE_INSTALL_PREFIX=/some/path .
10+
make
11+
make install
12+
13+
Install SymEngine.f90:
14+
15+
cmake -DCMAKE_PREFIX_PATH=/some/path .
16+
make
17+
make install

src/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
set(SRC
2+
basic.f90
3+
)
4+
5+
include_directories(BEFORE ${python_wrapper_BINARY_DIR}/symengine/lib)
6+
7+
add_library(symengine_f90 ${SRC})
8+
target_link_libraries(symengine_f90 ${SYMENGINE_LIBRARIES})

src/basic.f90

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module basic
2+
implicit none
3+
4+
contains
5+
6+
end module

0 commit comments

Comments
 (0)