Skip to content

Commit 12930af

Browse files
authored
Install opts notest (#172)
* allow no building of tests * change default * just use setup.py install * fix install * remove HWY_DLLEXPORT
1 parent 904b3a6 commit 12930af

File tree

4 files changed

+130
-93
lines changed

4 files changed

+130
-93
lines changed

.github/workflows/make_and_test.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,35 @@ jobs:
9898
# run python API tests
9999
run: pytest distopia/tests
100100

101+
102+
external_hwy_no_test:
103+
# A conda install, which relies purely on pyproject.toml contents
104+
runs-on: ${{ matrix.os }}
105+
strategy:
106+
fail-fast: false
107+
matrix:
108+
os: [ubuntu-latest, macos-latest]
109+
python-version: ['3.10', '3.11', '3.12']
110+
111+
steps:
112+
- uses: actions/checkout@v3
113+
with:
114+
submodules: recursive
115+
116+
- uses: mamba-org/setup-micromamba@v1
117+
with:
118+
environment-file: devtools/conda_envs/distopia_${{ matrix.os }}.yaml
119+
environment-name: distopia
120+
create-args: >-
121+
python==${{ matrix.python-version }}
122+
123+
- name: install libhwy
124+
run: micromamba install -c conda-forge libhwy
125+
126+
- name: check_env
127+
run: |
128+
which python
129+
python -m pip list
130+
131+
- name: build
132+
run: python setup.py build -- -DDISTOPIA_BUILD_TESTS=OFF -DDISTOPIA_USE_EXTERNAL_HWY=ON

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ include_directories(${PROJECT_SOURCE_DIR}/libdistopia/include)
1616

1717
# setup an option for using external HWY
1818
option(DISTOPIA_USE_EXTERNAL_HWY "Use external HWY" OFF)
19+
option(DISTOPIA_BUILD_TESTS "Build tests" ON)
1920

2021
# use, i.e. don't skip the full RPATH for the build tree
2122
set(CMAKE_SKIP_BUILD_RPATH FALSE)

libdistopia/CMakeLists.txt

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
set(HWY_ENABLE_TESTS OFF CACHE BOOL "Enable HWY tests" FORCE)
33

44

5-
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Enable googlebench tests" FORCE)
6-
add_subdirectory("googlebench")
5+
76

87
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
98

@@ -28,45 +27,50 @@ else()
2827
add_subdirectory("highway")
2928
target_link_libraries(libdistopia PRIVATE hwy)
3029
endif()
31-
3230

33-
add_executable(bench)
34-
target_sources(bench PRIVATE "test/bench.cpp")
35-
target_link_libraries(bench PUBLIC benchmark::benchmark)
36-
target_link_libraries(bench PUBLIC libdistopia)
37-
target_include_directories(bench PUBLIC ${CMAKE_CURRENT_LIST_DIR})
3831

32+
if(DISTOPIA_BUILD_TESTS)
33+
34+
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Enable googlebench tests" FORCE)
35+
add_subdirectory("googlebench")
3936

40-
Include(GoogleTest)
41-
add_subdirectory("googletest")
42-
enable_testing()
43-
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
44-
include_directories(${gmock_SOURCE_DIR}/include ${gmock_SOURCE_DIR})
37+
add_executable(bench)
38+
target_sources(bench PRIVATE "test/bench.cpp")
39+
target_link_libraries(bench PUBLIC benchmark::benchmark)
40+
target_link_libraries(bench PUBLIC libdistopia)
41+
target_include_directories(bench PUBLIC ${CMAKE_CURRENT_LIST_DIR})
4542

4643

47-
add_executable(test)
48-
target_sources(test PRIVATE "test/test.cpp")
49-
target_link_libraries(test PUBLIC gtest gtest_main)
50-
target_link_libraries(test PUBLIC gmock gmock_main)
44+
Include(GoogleTest)
45+
add_subdirectory("googletest")
46+
enable_testing()
47+
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
48+
include_directories(${gmock_SOURCE_DIR}/include ${gmock_SOURCE_DIR})
5149

52-
target_link_libraries(test PUBLIC libdistopia)
53-
target_include_directories(test PUBLIC ${CMAKE_SOURCE_DIR})
54-
gtest_discover_tests(test WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
5550

51+
add_executable(test)
52+
target_sources(test PRIVATE "test/test.cpp")
53+
target_link_libraries(test PUBLIC gtest gtest_main)
54+
target_link_libraries(test PUBLIC gmock gmock_main)
5655

57-
add_executable(targets)
58-
target_sources(targets PRIVATE "test/targets.cpp")
59-
target_link_libraries(targets PUBLIC libdistopia)
60-
target_include_directories(targets PUBLIC ${CMAKE_SOURCE_DIR})
56+
target_link_libraries(test PUBLIC libdistopia)
57+
target_include_directories(test PUBLIC ${CMAKE_SOURCE_DIR})
58+
gtest_discover_tests(test WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
6159

62-
add_executable(test_mda_match)
63-
target_sources(test_mda_match PRIVATE "test/test_mda_match.cpp")
64-
target_link_libraries(test_mda_match PUBLIC gtest gtest_main)
65-
target_link_libraries(test PUBLIC gmock gmock_main)
66-
target_link_libraries(test_mda_match PUBLIC libdistopia)
67-
target_include_directories(test_mda_match PUBLIC ${CMAKE_SOURCE_DIR})
68-
gtest_discover_tests(test_mda_match WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
6960

61+
add_executable(targets)
62+
target_sources(targets PRIVATE "test/targets.cpp")
63+
target_link_libraries(targets PUBLIC libdistopia)
64+
target_include_directories(targets PUBLIC ${CMAKE_SOURCE_DIR})
65+
66+
add_executable(test_mda_match)
67+
target_sources(test_mda_match PRIVATE "test/test_mda_match.cpp")
68+
target_link_libraries(test_mda_match PUBLIC gtest gtest_main)
69+
target_link_libraries(test PUBLIC gmock gmock_main)
70+
target_link_libraries(test_mda_match PUBLIC libdistopia)
71+
target_include_directories(test_mda_match PUBLIC ${CMAKE_SOURCE_DIR})
72+
gtest_discover_tests(test_mda_match WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
73+
endif()
7074

7175
# cmake will append the name lib already , avoid liblibdistopia
7276
set_target_properties(libdistopia PROPERTIES OUTPUT_NAME distopia)

0 commit comments

Comments
 (0)