Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 15 additions & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10.2)
cmake_minimum_required(VERSION 3.14)

set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)

Expand Down Expand Up @@ -34,20 +34,22 @@ endif()
add_subdirectory(deps)
add_subdirectory(mlmodel)

find_package(PythonInterp)
find_package(PythonLibs)
set(Python3_FIND_VIRTUALENV FIRST)
find_package(Python3 REQUIRED COMPONENTS Interpreter Development NumPy)

message("Found python at ${PYTHON_EXECUTABLE}")
message("Found python version ${PYTHON_VERSION_STRING}")
message("Found python includes ${PYTHON_INCLUDE_DIRS}")
message("Found python at ${Python3_EXECUTABLE}")
message("Found python version ${Python3_VERSION}")
message("Found python includes ${Python3_INCLUDE_DIRS}")
message("Found numpy includes ${Python3_NumPy_INCLUDE_DIRS}")

include_directories(
.
deps/protobuf/src
deps/pybind11/include
deps/nlohmann
mlmodel/src
${PYTHON_INCLUDE_DIRS}
${Python3_INCLUDE_DIRS}
${Python3_NumPy_INCLUDE_DIRS}
)

if(APPLE)
Expand Down Expand Up @@ -133,21 +135,6 @@ find_library(CORE_ML CoreML)
find_library(FOUNDATION Foundation)

if (APPLE AND CORE_VIDEO AND CORE_ML AND FOUNDATION)
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import numpy; print(numpy.get_include())"
RESULT_VARIABLE NUMPY_INCLUDE_STATUS
OUTPUT_VARIABLE NUMPY_INCLUDE
)

if("${NUMPY_INCLUDE}" STREQUAL "" OR NOT NUMPY_INCLUDE_STATUS EQUAL 0)
message(FATAL_ERROR "Could not find numpy include path. Exit code: ${NUMPY_INCLUDE_STATUS}")
endif()
message("Found numpy include path at ${NUMPY_INCLUDE}")

include_directories(
${NUMPY_INCLUDE}
)

add_library(coremlpython
SHARED
coremlpython/CoreMLPython.mm
Expand Down Expand Up @@ -195,7 +182,7 @@ endif()
# Build kmeans-1d
set(KMEANS_DIR "${PROJECT_SOURCE_DIR}/deps/kmeans1d")
execute_process(
COMMAND python3 setup.py build_ext --inplace
COMMAND ${Python3_EXECUTABLE} setup.py build_ext --inplace
WORKING_DIRECTORY ${KMEANS_DIR}
RESULT_VARIABLE KMEANS1D_BUILD_STATUS
)
Expand All @@ -221,7 +208,7 @@ execute_process(
)


set(PYTHON_TAG "cp${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
set(PYTHON_TAG "cp${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}")
if(APPLE)
execute_process(COMMAND uname -m OUTPUT_VARIABLE HARDWARE_NAME OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${HARDWARE_NAME} MATCHES "x86_64")
Expand Down Expand Up @@ -252,7 +239,7 @@ set(plat_targets "")
foreach(platform IN ITEMS ${PLAT_NAME})
add_custom_target(dist_${platform}
COMMENT "Building dist for platform ${platform}..."
COMMAND ${PYTHON_EXECUTABLE}
COMMAND ${Python3_EXECUTABLE}
${CMAKE_SOURCE_DIR}/setup.py
bdist_wheel
--plat-name=${platform}
Expand All @@ -268,18 +255,18 @@ endforeach()
add_custom_target(dist DEPENDS ${plat_targets})

add_custom_target(pip_install_dev
COMMAND pip install -e ${PROJECT_SOURCE_DIR}
COMMAND ${Python3_EXECUTABLE} -m pip install -e ${PROJECT_SOURCE_DIR}
DEPENDS "coremlpython"
)

add_custom_target(pytest
COMMAND pytest -r fs ${PROJECT_SOURCE_DIR}/coremltools/test/ --timeout=600
COMMAND ${Python3_EXECUTABLE} -m pytest -r fs ${PROJECT_SOURCE_DIR}/coremltools/test/ --timeout=600
DEPENDS pip_install_dev
USES_TERMINAL
)

add_custom_target(pytest_no_slow
COMMAND pytest -r fs -m '"no slow"' ${PROJECT_SOURCE_DIR}/coremltools/test/
COMMAND ${Python3_EXECUTABLE} -m pytest -r fs -m '"no slow"' ${PROJECT_SOURCE_DIR}/coremltools/test/
DEPENDS pip_install_dev
USES_TERMINAL
)
4 changes: 1 addition & 3 deletions scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,7 @@ if [ -z "`which cmake`" ] || [ "`which cmake`" = "cmake not found" ]; then
fi
CMAKE_COMMAND+="cmake $ADDITIONAL_CMAKE_OPTIONS \
-DCMAKE_BUILD_TYPE=$BUILD_MODE \
-DPYTHON_EXECUTABLE:FILEPATH=$PYTHON_EXECUTABLE \
-DPYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR \
-DPYTHON_LIBRARY=$PYTHON_LIBRARY \
-DPython3_EXECUTABLE:FILEPATH=$PYTHON_EXECUTABLE \
-DOVERWRITE_PB_SOURCE=$BUILD_PROTO \
-DBUILD_TAG=$BUILD_TAG \
${COREMLTOOLS_HOME}"
Expand Down
4 changes: 1 addition & 3 deletions scripts/conda/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ cd build

cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
-DPYTHON_EXECUTABLE:FILEPATH=${PREFIX}/bin/python \
-DPYTHON_INCLUDE_DIR=$(${PYTHON} -c 'import sysconfig; print(sysconfig.get_paths()["include"])') \
-DPYTHON_LIBRARY=${PREFIX}/lib \
-DPython3_EXECUTABLE:FILEPATH=${PREFIX}/bin/python \
..
make -j ${CPU_COUNT}

Expand Down