| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- cmake_minimum_required(VERSION 3.10)
- project(numpy)
- # Set C++ standard
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- # Include pybind11 and numpy
- include_directories("${CMAKE_CURRENT_LIST_DIR}/../../include")
- include_directories("${CMAKE_CURRENT_LIST_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_RECURSE SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp)
- # Create numpy dynamic library
- add_library(${PROJECT_NAME} SHARED ${SOURCES})
- # Define PY_DYNAMIC_MODULE for numpy
- target_compile_definitions(${PROJECT_NAME} PRIVATE PY_DYNAMIC_MODULE)
- # Link numpy with pocketpy
- if(WIN32)
- target_link_libraries(
- ${PROJECT_NAME}
- PRIVATE
- ${CMAKE_CURRENT_LIST_DIR}/../../build/Release/pocketpy.lib
- )
- else()
- target_link_libraries(
- ${PROJECT_NAME}
- PRIVATE
- ${CMAKE_CURRENT_LIST_DIR}/../../build/libpocketpy.so
- )
- endif()
|