Skip to content

Commit 43905ea

Browse files
authored
Add Win Ninja (MSVC and Clang) (#208)
... and rebalanced machines tree by load and execution duration
1 parent 7f8cff8 commit 43905ea

File tree

6 files changed

+56
-25
lines changed

6 files changed

+56
-25
lines changed

.github/workflows/main.yml

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,9 @@ jobs:
596596
with:
597597
submodules: recursive
598598
- name: Add msbuild to PATH
599-
uses: microsoft/[email protected]
599+
uses: microsoft/setup-msbuild@v2
600+
with:
601+
vs-version: 'latest'
600602
- name: Setup MPI
601603
uses: mpi4py/setup-mpi@v1
602604
with:
@@ -608,10 +610,14 @@ jobs:
608610
uses: Chocobo1/setup-ccache-action@v1
609611
with:
610612
windows_compile_environment: msvc
613+
- name: Setup ninja
614+
uses: seanmiddleditch/gha-setup-ninja@master
615+
- name: Setup MSVC for Ninja again
616+
uses: ilammy/msvc-dev-cmd@v1
611617
- name: CMake configure
612618
shell: bash
613619
run: >
614-
cmake -S . -B build
620+
cmake -S . -B build -G Ninja -D CMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl
615621
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
616622
-D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
617623
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
@@ -648,7 +654,9 @@ jobs:
648654
with:
649655
submodules: recursive
650656
- name: Add msbuild to PATH
651-
uses: microsoft/[email protected]
657+
uses: microsoft/setup-msbuild@v2
658+
with:
659+
vs-version: 'latest'
652660
- name: Setup MPI
653661
uses: mpi4py/setup-mpi@v1
654662
with:
@@ -660,10 +668,14 @@ jobs:
660668
uses: Chocobo1/setup-ccache-action@v1
661669
with:
662670
windows_compile_environment: msvc
671+
- name: Setup ninja
672+
uses: seanmiddleditch/gha-setup-ninja@master
673+
- name: Setup MSVC for Ninja again
674+
uses: ilammy/msvc-dev-cmd@v1
663675
- name: CMake configure
664676
shell: bash
665677
run: >
666-
cmake -S . -B build
678+
cmake -S . -B build -G Ninja -D CMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl
667679
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
668680
-D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
669681
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
@@ -717,10 +729,16 @@ jobs:
717729
with:
718730
submodules: recursive
719731
- name: Add msbuild to PATH
720-
uses: microsoft/[email protected]
732+
uses: microsoft/setup-msbuild@v2
733+
with:
734+
vs-version: 'latest'
735+
- name: Setup ninja
736+
uses: seanmiddleditch/gha-setup-ninja@master
737+
- name: Setup MSVC for Ninja again
738+
uses: ilammy/msvc-dev-cmd@v1
721739
- name: CMake configure
722740
run: >
723-
cmake -S . -B build -A x64 -T ClangCL
741+
cmake -S . -B build -GNinja -D CMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl
724742
-D USE_SEQ=ON -D USE_MPI=OFF -D USE_OMP=OFF -D USE_TBB=ON -D USE_STL=ON
725743
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
726744
-D CMAKE_BUILD_TYPE=RELEASE
@@ -765,10 +783,16 @@ jobs:
765783
with:
766784
submodules: recursive
767785
- name: Add msbuild to PATH
768-
uses: microsoft/[email protected]
786+
uses: microsoft/setup-msbuild@v2
787+
with:
788+
vs-version: 'latest'
789+
- name: Setup ninja
790+
uses: seanmiddleditch/gha-setup-ninja@master
791+
- name: Setup MSVC for Ninja again
792+
uses: ilammy/msvc-dev-cmd@v1
769793
- name: CMake configure
770794
run: >
771-
cmake -S . -B build -A x64 -T ClangCL
795+
cmake -S . -B build -GNinja -D CMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl
772796
-D USE_SEQ=ON -D USE_MPI=OFF -D USE_OMP=OFF -D USE_TBB=ON -D USE_STL=ON
773797
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
774798
-D CMAKE_BUILD_TYPE=RELEASE
@@ -823,7 +847,9 @@ jobs:
823847
CLANG_BUILD: 1
824848
ubuntu-gcc-build-codecov:
825849
needs:
826-
- ubuntu-gcc-build
850+
- ubuntu-gcc-build-extended
851+
- ubuntu-clang-build-extended
852+
- macos-clang-build-extended
827853
runs-on: ubuntu-latest
828854
steps:
829855
- uses: actions/checkout@v4
@@ -893,10 +919,7 @@ jobs:
893919
path: 'cov-report'
894920
ubuntu-gcc-build-perf-stats:
895921
needs:
896-
- macos-clang-build-extended
897922
- ubuntu-gcc-build-codecov
898-
- ubuntu-gcc-build-extended
899-
- ubuntu-clang-build-extended
900923
- ubuntu-clang-sanitizer-build-extended
901924
- windows-clang-build-extended
902925
- windows-msvc-build-extended

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ endif( USE_MPI )
2323

2424
############################### OpenMP ##############################
2525
option(USE_OMP OFF)
26-
if( USE_OMP OR USE_SEQ )
26+
if( USE_OMP )
2727
find_package( OpenMP )
2828
if( OpenMP_FOUND )
2929
include_directories( ${OpenMP_C_INCLUDE_DIRS} ${OpenMP_CXX_INCLUDE_DIRS} )
@@ -43,7 +43,7 @@ if( USE_OMP OR USE_SEQ )
4343
message(FATAL_ERROR "OpenMP NOT FOUND")
4444
endif()
4545
endif( OpenMP_FOUND )
46-
endif( USE_OMP OR USE_SEQ )
46+
endif( USE_OMP )
4747

4848
############################ std::thread ############################
4949
option(USE_STL OFF)

cmake/boost.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ ExternalProject_Add(ppc_boost
1313
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${CMAKE_SOURCE_DIR}/3rdparty/boost/" -B "${CMAKE_CURRENT_BINARY_DIR}/ppc_boost/build/"
1414
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -G${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBOOST_ENABLE_MPI=ON
1515
-D MPI_INCLUDE_PATH=${MPI_INCLUDE_PATH} -D MPI_LIBRARIES=${MPI_LIBRARIES} -D MPI_COMPILE_FLAGS=${MPI_COMPILE_FLAGS} -D MPI_LINK_FLAGS=${MPI_LINK_FLAGS}
16-
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_boost/build" --config ${CMAKE_BUILD_TYPE}
16+
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_boost/build" --config ${CMAKE_BUILD_TYPE} --parallel
1717
INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_boost/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_boost/install"
1818
TEST_COMMAND "")

cmake/configure.cmake

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,21 @@ set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" )
2121
set( CMAKE_CXX_STANDARD 20 )
2222

2323
if( UNIX )
24-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Wsign-compare -Werror")
25-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Wsign-compare -Werror")
24+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
25+
-Wall -Wextra \
26+
-Wno-unused-parameter \
27+
-Wno-cast-function-type \
28+
-Wsign-compare -Werror")
29+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
30+
-Wall -Wextra \
31+
-Wno-unused-parameter \
32+
-Wno-cast-function-type \
33+
-Wsign-compare -Werror")
2634
if (USE_COVERAGE)
2735
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
2836
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
2937
endif(USE_COVERAGE)
30-
endif( UNIX )
38+
endif()
3139

3240
if( MSVC )
3341
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")

cmake/gtest.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ ExternalProject_Add(ppc_googletest
88
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install"
99
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${CMAKE_SOURCE_DIR}/3rdparty/googletest/" -B "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build/"
1010
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -G${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
11-
-Dgtest_force_shared_crt=ON
12-
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --config ${CMAKE_BUILD_TYPE}
11+
-Dgtest_force_shared_crt=ON -DCMAKE_CXX_FLAGS="-w" -DCMAKE_C_FLAGS="-w"
12+
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --config ${CMAKE_BUILD_TYPE} --parallel
1313
INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_googletest/install")

cmake/onetbb.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ if(MSVC)
88
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb"
99
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build"
1010
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install"
11-
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${CMAKE_SOURCE_DIR}/3rdparty/onetbb/" -B "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build/"
11+
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${CMAKE_SOURCE_DIR}/3rdparty/onetbb/" -B "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build/" -DCMAKE_CXX_FLAGS="-w" -DCMAKE_C_FLAGS="-w"
1212
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -G${CMAKE_GENERATOR} -DTBB_TEST=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
13-
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --config ${CMAKE_BUILD_TYPE}
13+
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --config ${CMAKE_BUILD_TYPE} --parallel
1414
INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install"
1515
TEST_COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install/bin" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
1616
else(MSVC)
@@ -19,8 +19,8 @@ else(MSVC)
1919
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb"
2020
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build"
2121
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install"
22-
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${CMAKE_SOURCE_DIR}/3rdparty/onetbb/" -B "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build/"
22+
CONFIGURE_COMMAND "${CMAKE_COMMAND}" -S "${CMAKE_SOURCE_DIR}/3rdparty/onetbb/" -B "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build/" -DCMAKE_CXX_FLAGS="-w" -DCMAKE_C_FLAGS="-w"
2323
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -G${CMAKE_GENERATOR} -DTBB_TEST=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
24-
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --config ${CMAKE_BUILD_TYPE}
24+
BUILD_COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --config ${CMAKE_BUILD_TYPE} --parallel
2525
INSTALL_COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/build" --prefix "${CMAKE_CURRENT_BINARY_DIR}/ppc_onetbb/install")
26-
endif(MSVC)
26+
endif(MSVC)

0 commit comments

Comments
 (0)