Skip to content

Commit cc41167

Browse files
committed
Add cython headers to install, python / cmake packaging cleanup
1 parent efe4c6d commit cc41167

File tree

7 files changed

+100
-44
lines changed

7 files changed

+100
-44
lines changed

cpp/CMakeLists.txt

+26-24
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ if(CMAKE_COMPILER_IS_GNUCXX)
5252

5353
option(CMAKE_CXX11_ABI "Enable the GLIBCXX11 ABI" ON)
5454
if(CMAKE_CXX11_ABI)
55-
message(STATUS "CUDF: Enabling the GLIBCXX11 ABI")
55+
message(STATUS "CUSPATIAL: Enabling the GLIBCXX11 ABI")
5656
else()
57-
message(STATUS "CUDF: Disabling the GLIBCXX11 ABI")
57+
message(STATUS "CUSPATIAL: Disabling the GLIBCXX11 ABI")
5858
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
5959
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
6060
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -D_GLIBCXX_USE_CXX11_ABI=0")
@@ -101,20 +101,31 @@ include(FeatureSummary)
101101
include(CheckIncludeFiles)
102102
include(CheckLibraryExists)
103103

104+
###################################################################################################
105+
# - conda environment -----------------------------------------------------------------------------
106+
107+
if("$ENV{CONDA_BUILD}" STREQUAL "1")
108+
set(CMAKE_SYSTEM_PREFIX_PATH "$ENV{BUILD_PREFIX};$ENV{PREFIX};${CMAKE_SYSTEM_PREFIX_PATH}")
109+
set(CONDA_INCLUDE_DIRS "$ENV{BUILD_PREFIX}/include" "$ENV{PREFIX}/include")
110+
set(CONDA_LINK_DIRS "$ENV{BUILD_PREFIX}/lib" "$ENV{PREFIX}/lib")
111+
message(STATUS "Conda build detected, CMAKE_SYSTEM_PREFIX_PATH set to: ${CMAKE_SYSTEM_PREFIX_PATH}")
112+
elseif(DEFINED ENV{CONDA_PREFIX})
113+
set(CMAKE_SYSTEM_PREFIX_PATH "$ENV{CONDA_PREFIX};${CMAKE_SYSTEM_PREFIX_PATH}")
114+
set(CONDA_INCLUDE_DIRS "$ENV{CONDA_PREFIX}/include")
115+
set(CONDA_LINK_DIRS "$ENV{CONDA_PREFIX}/lib")
116+
message(STATUS "Conda environment detected, CMAKE_SYSTEM_PREFIX_PATH set to: ${CMAKE_SYSTEM_PREFIX_PATH}")
117+
endif("$ENV{CONDA_BUILD}" STREQUAL "1")
118+
104119
###################################################################################################
105120
# - RMM -------------------------------------------------------------------------------------------
106121

107122
find_path(RMM_INCLUDE "rmm"
108-
HINTS "$ENV{RMM_ROOT}/include"
109-
"$ENV{CONDA_PREFIX}/include/rmm"
110-
"$ENV{CONDA_PREFIX}/include")
123+
HINTS "$ENV{RMM_ROOT}/include")
111124

112125
find_library(RMM_LIBRARY "rmm"
113-
HINTS "$ENV{RMM_ROOT}/lib"
114-
"$ENV{CONDA_PREFIX}/lib")
126+
HINTS "$ENV{RMM_ROOT}/lib")
115127

116128
message(STATUS "RMM: RMM_ROOT set to $ENV{RMM_ROOT}")
117-
message(STATUS "RMM: CONDA_PREFIX set to $ENV{CONDA_PREFIX}")
118129
message(STATUS "RMM: RMM_LIBRARY set to ${RMM_LIBRARY}")
119130
message(STATUS "RMM: RMM_INCLUDE set to ${RMM_INCLUDE}")
120131

@@ -126,21 +137,17 @@ endif (RMM_INCLUDE AND RMM_LIBRARY)
126137
# - CUDF -------------------------------------------------------------------------------------------
127138

128139
find_path(CUDF_INCLUDE "cudf"
129-
"$ENV{CUDF_HOME}/cpp/include"
130-
"$ENV{CONDA_PREFIX}/include/cudf"
131-
"$ENV{CONDA_PREFIX}/include")
140+
"$ENV{CUDF_HOME}/cpp/include")
132141

133142
find_library(CUDF_LIBRARY "cudf"
134-
"$ENV{CUDF_HOME}/cpp/build"
135-
"$ENV{CONDA_PREFIX}/lib")
143+
"$ENV{CUDF_HOME}/cpp/build")
136144

137145
SET(CUDF_SRC_INCLUDE "$ENV{CUDF_HOME}/cpp/src")
138146
SET(CUB_INCLUDE "$ENV{CUDF_HOME}/cpp/thirdparty/cub")
139147
SET(JITIFY_INCLUDE "$ENV{CUDF_HOME}/cpp/thirdparty/jitify")
140148
SET(CUDF_TEST_INCLUDE "$ENV{CUDF_HOME}/cpp/")
141149

142150
message(STATUS "CUDF: CUDF_HOME set to $ENV{CUDF_HOME}")
143-
message(STATUS "CUDF: CONDA_PREFIX set to $ENV{CONDA_PREFIX}")
144151
message(STATUS "CUDF: CUDF_LIBRARY set to ${CUDF_LIBRARY}")
145152
message(STATUS "CUDF: CUDF_INCLUDE set to ${CUDF_INCLUDE}")
146153
message(STATUS "CUDF SRC: CUDF_SRC_INCLUDE set to ${CUDF_SRC_INCLUDE}")
@@ -157,21 +164,16 @@ endif (CUDF_INCLUDE AND CUDF_LIBRARY)
157164
# - NVStrings -------------------------------------------------------------------------------------
158165

159166
find_path(NVSTRINGS_INCLUDE "nvstrings"
160-
HINTS "$ENV{NVSTRINGS_ROOT}/include"
161-
"$ENV{CONDA_PREFIX}/include/nvstrings"
162-
"$ENV{CONDA_PREFIX}/include")
167+
HINTS "$ENV{NVSTRINGS_ROOT}/include")
163168

164169
find_library(NVSTRINGS_LIBRARY "NVStrings"
165-
HINTS "$ENV{NVSTRINGS_ROOT}/lib"
166-
"$ENV{CONDA_PREFIX}/lib")
170+
HINTS "$ENV{NVSTRINGS_ROOT}/lib")
167171

168172
find_library(NVCATEGORY_LIBRARY "NVCategory"
169-
HINTS "$ENV{NVSTRINGS_ROOT}/lib"
170-
"$ENV{CONDA_PREFIX}/lib")
173+
HINTS "$ENV{NVSTRINGS_ROOT}/lib")
171174

172175
find_library(NVTEXT_LIBRARY "NVText"
173-
HINTS "$ENV{NVSTRINGS_ROOT}/lib"
174-
"$ENV{CONDA_PREFIX}/lib")
176+
HINTS "$ENV{NVSTRINGS_ROOT}/lib")
175177

176178
message(STATUS "NVSTRINGS: NVSTRINGS_INCLUDE set to ${NVSTRINGS_INCLUDE}")
177179
message(STATUS "NVSTRINGS: NVSTRINGS_LIBRARY set to ${NVSTRINGS_LIBRARY}")
@@ -236,7 +238,7 @@ endif(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
236238
include_directories("${CMAKE_BINARY_DIR}/include"
237239
"${CMAKE_SOURCE_DIR}/include"
238240
"${CMAKE_SOURCE_DIR}/src"
239-
"${CMAKE_SOURCE_DIR}/thirdparty/cub"
241+
"${CMAKE_SOURCE_DIR}/thirdparty/cub"
240242
"${RMM_INCLUDE}"
241243
"${CUDF_SRC_INCLUDE}"
242244
"${CUDF_INCLUDE}"

cpp/tests/CMakeLists.txt

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
22

3-
project(CUDF_TESTS LANGUAGES C CXX CUDA)
3+
project(CUSPATIAL_TESTS LANGUAGES C CXX CUDA)
44

55
if(NOT CMAKE_CUDA_COMPILER)
66
message(SEND_ERROR "CMake cannot locate a CUDA compiler")
@@ -9,6 +9,7 @@ endif()
99
###################################################################################################
1010
# - common test utils -----------------------------------------------------------------------------
1111

12+
# Use shipped library in libcudf package instead here
1213
add_library(cudftestutil STATIC
1314
"${CUDF_TEST_INCLUDE}/tests/utilities/cudf_test_utils.cu"
1415
"${CUDF_TEST_INCLUDE}/tests/utilities/valid_vectors.cpp"
@@ -39,7 +40,7 @@ function(ConfigureTest CMAKE_TEST_NAME CMAKE_TEST_SRC)
3940
add_test(NAME ${CMAKE_TEST_NAME} COMMAND ${CMAKE_TEST_NAME})
4041
endfunction(ConfigureTest)
4142

42-
option(CMAKE_ENABLE_BENCHMARKS "Enable building cuDF benchmarks" OFF)
43+
option(CMAKE_ENABLE_BENCHMARKS "Enable building cuSpatial benchmarks" OFF)
4344

4445
function(ConfigureBench CMAKE_BENCH_NAME CMAKE_BENCH_SRC)
4546
if(CMAKE_ENABLE_BENCHMARKS)
@@ -80,7 +81,7 @@ include_directories("${CMAKE_BINARY_DIR}/include"
8081

8182
link_directories("${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}" # CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES is an undocumented/unsupported variable containing the link directories for nvcc
8283
"${CMAKE_BINARY_DIR}/lib"
83-
"${GTEST_LIBRARY_DIR}"
84+
"${GTEST_LIBRARY_DIR}"
8485
"${RMM_LIBRARY}"
8586
"${CUDF_LIBRARY}"
8687
"${CUSPATIAL_LIBRARY}"

pyproject.toml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[tool.black]
2+
line-length = 79
3+
target-version = ["py36"]
4+
include = '\.py?$'
5+
exclude = '''
6+
/(
7+
thirdparty |
8+
\.eggs |
9+
\.git |
10+
\.hg |
11+
\.mypy_cache |
12+
\.tox |
13+
\.venv |
14+
_build |
15+
buck-out |
16+
build |
17+
dist
18+
)/
19+
'''

python/cuspatial/.flake8.cython

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#
2+
# Copyright (c) 2018-2019, NVIDIA CORPORATION.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
16+
17+
[flake8]
18+
filename = *.pyx, *.pxd
19+
exclude = *.egg, build, docs, .git
20+
ignore = E999, E225, E226, E227, W503, W504, E211
21+
22+
# Rules ignored:
23+
# E999: invalid syntax (works for Python, not Cython)
24+
# E211: whitespace before '(' (used in multi-line imports)
25+
# E225: Missing whitespace around operators (breaks cython casting syntax like <int>)
26+
# E226: Missing whitespace around arithmetic operators (breaks cython pointer syntax like int*)
27+
# E227: Missing whitespace around bitwise or shift operator (Can also break casting syntax)
28+
# W503: line break before binary operator (breaks lines that start with a pointer)
29+
# W504: line break after binary operator (breaks lines that end with a pointer)

python/cuspatial/setup.cfg

+11-13
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,13 @@ ignore =
2020
# whitespace before :
2121
E203
2222

23-
known_third_party=
24-
cython,
25-
msgpack,
26-
numba,
27-
numpy,
28-
packaging,
29-
pandas,
30-
pyarrow,
31-
pytest,
32-
setuptools,
33-
six,
34-
toolz,
35-
versioneer
23+
[isort]
24+
line_length=79
25+
multi_line_output=3
26+
include_trailing_comma=True
27+
force_grid_wrap=0
28+
combine_as_imports=True
29+
order_by_type=True
3630
known_dask=
3731
dask
3832
distributed
@@ -46,6 +40,9 @@ known_rapids=
4640
cugraph
4741
cudf
4842
dask_cudf
43+
known_first_party=
44+
cuspatial
45+
default_section=THIRDPARTY
4946
sections=FUTURE,STDLIB,THIRDPARTY,DASK,RAPIDS,FIRSTPARTY,LOCALFOLDER
5047
skip=
5148
thirdparty
@@ -59,3 +56,4 @@ skip=
5956
buck-out
6057
build
6158
dist
59+
__init__.py

python/cuspatial/setup.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919
sources=cython_files,
2020
include_dirs=[
2121
"../../cpp/include/cuspatial",
22-
os.environ['CONDA_PREFIX']+"/include/cudf",
2322
os.path.dirname(sysconfig.get_path("include")),
24-
np.get_include()
23+
np.get_include(),
2524
],
2625
library_dirs=[get_python_lib()],
27-
libraries=["cudf","cuspatial"],
26+
libraries=["cudf", "cuspatial"],
2827
language="c++",
29-
extra_compile_args=["-std=c++14"]
28+
extra_compile_args=["-std=c++14"],
3029
)
3130
]
3231

@@ -50,6 +49,7 @@
5049
setup_requires=["cython"],
5150
ext_modules=cythonize(extensions),
5251
packages=find_packages(include=["cuspatial", "cuspatial.*"]),
52+
package_data={"cuspatial._lib": ["*.pxd"]},
5353
cmdclass=versioneer.get_cmdclass(),
5454
install_requires=install_requires,
5555
zip_safe=False,

setup.cfg

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[flake8]
2+
exclude = img,thirdparty,__init__.py,build
3+
ignore =
4+
# line break before binary operator
5+
W503
6+
# whitespace before :
7+
E203

0 commit comments

Comments
 (0)