Skip to content

Commit acb158e

Browse files
Use Ninja generator on both Linux and Windows
Ninja parallalizes the build and hence works faster to build the project, it also does not have the bug that make has cause it to unconditionally recompile and relink extension libraries saving significant iterative development time.
1 parent 524c3da commit acb158e

File tree

8 files changed

+20
-19
lines changed

8 files changed

+20
-19
lines changed

.github/workflows/generate-coverage.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ jobs:
3232
sudo apt-get install intel-oneapi-compiler-dpcpp-cpp
3333
sudo apt-get install intel-oneapi-tbb
3434
35-
- name: Install CMake
35+
- name: Install CMake and Ninja
3636
run: |
37-
sudo apt-get install cmake
37+
sudo apt-get install cmake ninja-build
3838
3939
- name: Setup Python
4040
uses: actions/setup-python@v2
@@ -87,8 +87,10 @@ jobs:
8787
source /opt/intel/oneapi/setvars.sh
8888
export _SAVED_PATH=${PATH}
8989
export PATH=$(dirname $(dirname $(which icx)))/bin-llvm:${PATH}
90-
python setup.py develop -- -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON -DDPCTL_GENERATE_COVERAGE=ON -DDPCTL_BUILD_CAPI_TESTS=ON -DDPCTL_COVERAGE_REPORT_OUTPUT_DIR=$(pwd)
91-
make -C $(find _skbuild -name tests) lcov-genhtml
90+
python setup.py develop -- -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON -DDPCTL_GENERATE_COVERAGE=ON -DDPCTL_BUILD_CAPI_TESTS=ON -DDPCTL_COVERAGE_REPORT_OUTPUT_DIR=$(pwd)
91+
pushd $(find _skbuild -name tests)
92+
cmake --build . --target lcov-genhtml || exit 1
93+
popd
9294
export PATH=${_SAVED_PATH}
9395
unset _SAVED_PATH
9496
python -c "import dpctl; print(dpctl.__version__); dpctl.lsplatform()" || exit 1

.github/workflows/generate-docs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ jobs:
3535
if: ${{ !github.event.pull_request || github.event.action != 'closed' }}
3636
run: |
3737
sudo apt-get install doxygen
38-
- name: Install CMake
38+
- name: Install CMake and Ninja
3939
if: ${{ !github.event.pull_request || github.event.action != 'closed' }}
4040
run: |
41-
sudo apt-get install cmake
41+
sudo apt-get install cmake ninja-build
4242
- name: Setup Python
4343
if: ${{ !github.event.pull_request || github.event.action != 'closed' }}
4444
uses: actions/setup-python@v2
@@ -64,7 +64,7 @@ jobs:
6464
wget https://github.com/vovkos/doxyrest/releases/download/doxyrest-2.1.2/doxyrest-2.1.2-linux-amd64.tar.xz
6565
tar xf doxyrest-2.1.2-linux-amd64.tar.xz
6666
python setup.py develop -- \
67-
-G "Unix Makefiles" \
67+
-G "Ninja" \
6868
-DCMAKE_BUILD_TYPE=Debug \
6969
-DCMAKE_C_COMPILER:PATH=icx \
7070
-DCMAKE_CXX_COMPILER:PATH=icpx \

.github/workflows/os-llvm-sycl-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
- name: Install system components
6969
shell: bash -l {0}
7070
run: |
71-
sudo apt-get install cmake libtinfo5
71+
sudo apt-get install cmake ninja-build libtinfo5
7272
7373
- name: Setup Python
7474
uses: actions/setup-python@v2
@@ -97,6 +97,6 @@ jobs:
9797
export OCL_ICD_FILENAMES=libintelocl.so:libintelocl_emu.so
9898
clang++ --version
9999
sycl-ls
100-
python setup.py develop -- -G "Unix Makefiles" -DCMAKE_C_COMPILER:PATH=clang -DCMAKE_CXX_COMPILER:PATH=clang++ -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON -DDPCTL_DPCPP_HOME_DIR=$(dirname $(dirname $(which clang))) -DDPCTL_DPCPP_FROM_ONEAPI=OFF
100+
python setup.py develop -- -G Ninja -DCMAKE_C_COMPILER:PATH=clang -DCMAKE_CXX_COMPILER:PATH=clang++ -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON -DDPCTL_DPCPP_HOME_DIR=$(dirname $(dirname $(which clang))) -DDPCTL_DPCPP_FROM_ONEAPI=OFF
101101
python -c "import dpctl; dpctl.lsplatform()" || exit 1
102102
SYCL_ENABLE_HOST_DEVICE=1 python -m pytest -v dpctl/tests

conda-recipe/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
export LDFLAGS="$LDFLAGS -Wl,-rpath,$PREFIX/lib"
77

88
${PYTHON} setup.py clean --all
9-
export CMAKE_GENERATOR="Unix Makefiles"
9+
export CMAKE_GENERATOR="Ninja"
1010
SKBUILD_ARGS="-- -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON -DDPCTL_DPCPP_HOME_DIR=${BUILD_PREFIX}"
1111
echo "${PYTHON} setup.py install ${SKBUILD_ARGS}"
1212

conda-recipe/meta.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ requirements:
2020
- cython
2121
- cmake >=3.21
2222
- python
23-
- make # [unix]
24-
- ninja # [win]
23+
- ninja
2524
- scikit-build
2625
- numpy 1.19
2726
- wheel

docs/docfiles/user_guides/QuickStart.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ installed:
143143
- ``numpy``
144144
- ``cmake``
145145
- ``scikit-build``
146-
- ``ninja`` (only on Windows)
146+
- ``ninja``
147147
- ``gtest`` (optional to run C API tests)
148148
- ``gmock`` (optional to run C API tests)
149149
- ``pytest`` (optional to run Python API tests)
@@ -152,15 +152,15 @@ Once the prerequisites are installed, building using ``scikit-build`` involves t
152152

153153
.. code-block:: bash
154154
155-
python setup.py install -- -G Unix\ Makefiles -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON
155+
python setup.py install -- -G Ninja -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON
156156
157157
, and to develop:
158158

159159
.. code-block:: bash
160160
161-
python setup.py develop -G Unix\ Makefiles -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON
161+
python setup.py develop -G Ninja -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ON
162162
163-
On Windows, use ``icx`` for both C and CXX compilers, and use :code:`-G Ninja` for cmake generator.
163+
On Windows, use ``icx`` for both C and CXX compilers.
164164

165165
Developing on Linux can also be done using driver script:
166166

@@ -180,7 +180,7 @@ Following steps in `Build and install with scikit-build`_ use command line optio
180180

181181
.. code-block:: bash
182182
183-
python setup.py develop -- -G Unix\ Makefiles -DCMAKE_C_COMPILER:PATH=clang -DCMAKE_CXX_COMPILER:PATH=clang++ -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ONE -DDPCTL_DPCPP_HOME_DIR=${DPCPP_ROOT}/llvm/build -DDPCTL_DPCPP_FROM_ONEAPI=OFF
183+
python setup.py develop -- -G Ninja -DCMAKE_C_COMPILER:PATH=clang -DCMAKE_CXX_COMPILER:PATH=clang++ -DDPCTL_ENABLE_LO_PROGRAM_CREATION=ONE -DDPCTL_DPCPP_HOME_DIR=${DPCPP_ROOT}/llvm/build -DDPCTL_DPCPP_FROM_ONEAPI=OFF
184184
185185
Alterantively, the driver script can be used
186186

scripts/gen_coverage.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def run(
4848
"develop",
4949
"--",
5050
"-G",
51-
"Unix Makefiles",
51+
"Ninja",
5252
"-DCMAKE_BUILD_TYPE=Debug",
5353
"-DCMAKE_C_COMPILER:PATH=" + c_compiler,
5454
"-DCMAKE_CXX_COMPILER:PATH=" + cxx_compiler,

scripts/gen_docs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def run(
4848
"develop",
4949
"--",
5050
"-G",
51-
"Unix Makefiles",
51+
"Ninja",
5252
"-DCMAKE_BUILD_TYPE=Debug",
5353
"-DCMAKE_C_COMPILER:PATH=" + c_compiler,
5454
"-DCMAKE_CXX_COMPILER:PATH=" + cxx_compiler,

0 commit comments

Comments
 (0)