Skip to content
Snippets Groups Projects
Commit 95885833 authored by Vincent Templier's avatar Vincent Templier
Browse files

Add cmake module for python binding + CMakeLists for aidge

parent ba7a19c2
No related branches found
No related tags found
No related merge requests found
cmake_minimum_required(VERSION 3.11)
project(Aidge)
option(PYBIND "python binding" ON)
# Add compile time reducer
include("${CMAKE_CURRENT_LIST_DIR}/cmake/cotire.cmake")
# For LINUX - GCC
add_compile_options(-Wall -Wextra -fPIC)
if (PYBIND)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules")
include(PybindModuleCreation)
add_definitions(-DPYBIND)
endif()
add_subdirectory(${CMAKE_SOURCE_DIR}/aidge/_Core)
# add_subdirectory(${CMAKE_SOURCE_DIR}/aidge/_CPU)
\ No newline at end of file
option(PYBIND "python binding" ON)
# project(Aidge_Core)
project(Aidge_Core)
if (PYBIND)
generate_python_binding(aidge_core core)
endif()
add_library(aidge_core STATIC)
add_library(core STATIC)
# Add include directories
target_include_directories(aidge_core PUBLIC "include")
target_include_directories(core PUBLIC "include")
# Containers module
file(GLOB_RECURSE src_files "src/*.cpp")
target_sources(aidge_core PRIVATE ${src_files})
target_sources(core PRIVATE ${src_files})
set_property(TARGET core PROPERTY POSITION_INDEPENDENT_CODE ON)
if (PYBIND)
target_include_directories(core PUBLIC $<BUILD_INTERFACE:${PYTHON_INCLUDE_DIRS}>)
target_link_libraries(core PRIVATE ${PYTHON_LIBRARIES})
endif()
# Activate compile time reducer for aidge_core
set_target_properties(aidge_core PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
set_target_properties(core PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
# set_target_properties(n2d2_cpu_lib PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "include/utils/Precompiled.hpp")
cotire(aidge_core)
\ No newline at end of file
cotire(core)
\ No newline at end of file
function(generate_python_binding name library)
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)
message(STATUS "Creating binding for module ${name}")
file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
pybind11_add_module(${name} MODULE ${pybind_src_files} "NO_EXTRAS")
target_include_directories(${name} PUBLIC ${pybind11_INCLUDE_DIRS} "python_binding")
target_link_libraries(${name} PUBLIC ${library})
endfunction()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment