| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- cmake_minimum_required(VERSION 3.10)
- project(numpy_bindings)
- # Set C++ standard
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
- # Add pocketpy as a subdirectory
- add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/../../.." "${CMAKE_CURRENT_BINARY_DIR}/pocketpy")
- # Include pybind11 and numpy
- include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../../include")
- include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include")
- # Control xtensor warnings (OFF by default)
- option(SHOW_XTENSOR_WARNINGS "Show warnings from xtensor" OFF)
- if(MSVC)
- add_compile_options(/wd4018 /wd4172 /wd4819)
- add_compile_options(/bigobj)
- endif()
- # Suppress xtensor warnings if SHOW_XTENSOR_WARNINGS is OFF
- if(NOT SHOW_XTENSOR_WARNINGS)
- add_compile_definitions(SUPPRESS_XTENSOR_WARNINGS)
- if(MSVC)
- add_compile_options(/wd4244 /wd4267 /wd4018)
- else()
- add_compile_options(-Wno-sign-compare -Wno-conversion -Wno-unused-variable -Wno-unused-parameter)
- endif()
- endif()
- # Add numpy source and test files
- file (GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/../src/numpy.cpp")
- file (GLOB TESTS "${CMAKE_CURRENT_SOURCE_DIR}/test_numpy.cpp")
- # Create numpy executables
- add_executable(numpy_bindings ${TESTS} ${SOURCES})
- # Set VS debugger working directory (if relevant)
- set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY CMAKE_CURRENT_LIST_DIR)
- # Link numpy with pocketpy
- target_link_libraries(${PROJECT_NAME} PRIVATE pocketpy)
|