Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
if (BUILD_CPU_ALONE)
project(Aidge_CPU)
cmake_minimum_required(VERSION 3.11)
add_compile_options(-Wall -Wextra -fPIC)
# Need the Core library to compile the CPU library
set(BUILD_CORE_ALONE ON)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../_Core _Core)
endif()
if (PYBIND)
add_definitions(-DPYBIND)
Include(FetchContent)
FetchContent_Declare(
PyBind11
GIT_REPOSITORY https://github.com/pybind/pybind11.git
GIT_TAG v2.10.4 # or a later release
)
FetchContent_MakeAvailable(PyBind11)
file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
pybind11_add_module(aidge_cpu MODULE ${pybind_src_files} "NO_EXTRAS")
target_include_directories(aidge_cpu PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
target_link_libraries(aidge_cpu PUBLIC cpu)
# generate_python_binding(aidge_cpu cpu)
endif()
add_library(cpu STATIC)
# Add include directories
target_include_directories(cpu PUBLIC "include")
# Containers module
file(GLOB_RECURSE src_files "src/*.cpp")
target_sources(cpu PRIVATE ${src_files})
target_link_libraries(cpu PUBLIC core)
set_property(TARGET cpu PROPERTY POSITION_INDEPENDENT_CODE ON)
if (PYBIND)
target_include_directories(cpu PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
target_link_libraries(cpu PRIVATE ${PYTHON_LIBRARIES})
endif()
if (NOT BUILD_CPU_ALONE)
# Activate compile time reducer for aidge_core
set_target_properties(cpu PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
# set_target_properties(n2d2_cpu_lib PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "include/utils/Precompiled.hpp")
cotire(cpu)
endif()
if (TESTS)
add_subdirectory(tests)
endif()