Skip to content

Commit 131fe6e

Browse files
committed
Merge branch 'develop'
v0.8.1
2 parents 7456652 + 627c093 commit 131fe6e

File tree

286 files changed

+15951
-5753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

286 files changed

+15951
-5753
lines changed

.github/workflows/build.yml

Lines changed: 277 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,277 @@
1+
name: STEPCODE
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
7+
jobs:
8+
windows:
9+
name: Windows Latest MSVC
10+
runs-on: windows-latest
11+
strategy:
12+
fail-fast: true
13+
steps:
14+
- name: Setup - CMake
15+
uses: lukka/get-cmake@latest
16+
17+
- name: Setup - Ninja
18+
uses: seanmiddleditch/gha-setup-ninja@master
19+
20+
- name: Checkout
21+
uses: actions/checkout@v2
22+
23+
- name: Add github workspace to path
24+
# https://github.community/t/deprecated-add-path/136621
25+
run: echo "$ENV{GITHUB_WORKSPACE}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
26+
27+
- name: Add msbuild to PATH
28+
uses: microsoft/setup-msbuild@v1.0.2
29+
30+
- name: Add cl.exe to PATH
31+
uses: ilammy/msvc-dev-cmd@v1
32+
33+
- name: Configure
34+
run: |
35+
cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DSC_ENABLE_TESTING=ON
36+
# We do the following in order to help ensure files are "flushed"
37+
# to disk before compilation is attempted
38+
# https://superuser.com/a/1553374/1286142
39+
powershell Write-VolumeCache C
40+
powershell Write-VolumeCache D
41+
42+
- name: Build
43+
run: cd build && ninja -j1 -v
44+
45+
- name: Test
46+
run: |
47+
cd build && ctest -j1 .
48+
49+
linux:
50+
name: Ubuntu Latest GCC
51+
runs-on: ubuntu-20.04
52+
strategy:
53+
fail-fast: true
54+
steps:
55+
- name: Setup - CMake
56+
uses: lukka/get-cmake@latest
57+
58+
- name: Setup - Ninja
59+
uses: seanmiddleditch/gha-setup-ninja@master
60+
61+
# TODO - we will want this when the new parser work comes in,
62+
# as we won't need perplex and the system tools should suffice
63+
# to exercise the generator logic:
64+
#
65+
# - name: Setup - System
66+
# env:
67+
# DEBIAN_FRONTEND: noninteractive
68+
# run: |
69+
# sudo apt-get update
70+
# # Install dev tools
71+
# sudo apt-get install re2c lemon
72+
# sudo apt-get clean
73+
74+
- name: Checkout
75+
uses: actions/checkout@v2
76+
77+
- name: Configure
78+
run: |
79+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
80+
cmake -S . -G Ninja -B build -D ENABLE_ALL=ON -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
81+
82+
- name: Build
83+
run: |
84+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
85+
cmake --build build --config Release
86+
87+
- name: Test
88+
run: |
89+
cd build && ctest -j1 . -C Release
90+
91+
linux_clang:
92+
name: Ubuntu Latest Clang
93+
runs-on: ubuntu-20.04
94+
strategy:
95+
fail-fast: true
96+
steps:
97+
- name: Setup - CMake
98+
uses: lukka/get-cmake@latest
99+
100+
- name: Setup - Ninja
101+
uses: seanmiddleditch/gha-setup-ninja@master
102+
103+
# TODO - we will want this when the new parser work comes in,
104+
# as we won't need perplex and the system tools should suffice
105+
# to exercise the generator logic:
106+
#
107+
# - name: Setup - System
108+
# env:
109+
# DEBIAN_FRONTEND: noninteractive
110+
# run: |
111+
# sudo apt-get update
112+
# # Install dev tools
113+
# sudo apt-get install re2c lemon
114+
# sudo apt-get clean
115+
116+
- name: Checkout
117+
uses: actions/checkout@v2
118+
119+
- name: Configure
120+
run: |
121+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
122+
CC=clang CXX=clang++ cmake -S . -G Ninja -B build -D ENABLE_ALL=ON -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
123+
124+
- name: Build
125+
run: |
126+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
127+
CC=clang CXX=clang++ cmake --build build --config Release
128+
129+
- name: Test
130+
run: |
131+
cd build && ctest -j1 . -C Release
132+
133+
134+
osx:
135+
name: macOS Latest Clang
136+
runs-on: macos-latest
137+
strategy:
138+
fail-fast: true
139+
steps:
140+
- name: Setup - CMake
141+
uses: lukka/get-cmake@latest
142+
143+
- name: Setup - Ninja
144+
uses: seanmiddleditch/gha-setup-ninja@master
145+
146+
- name: Checkout
147+
uses: actions/checkout@v2
148+
149+
- name: Configure
150+
run: |
151+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
152+
export CC=clang
153+
export CXX=clang++
154+
cmake -S . -G Ninja -B build -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
155+
156+
- name: Build
157+
run: |
158+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
159+
cd build && ninja -j1
160+
161+
- name: Test
162+
run: |
163+
cd build && ctest -j1 . -C Release
164+
165+
brlcad_linux:
166+
name: BRL-CAD Linux step-g Test
167+
runs-on: ubuntu-20.04
168+
strategy:
169+
fail-fast: true
170+
steps:
171+
- name: Setup - CMake
172+
uses: lukka/get-cmake@latest
173+
174+
- name: Setup - Ninja
175+
uses: seanmiddleditch/gha-setup-ninja@master
176+
177+
- name: Setup - System
178+
env:
179+
DEBIAN_FRONTEND: noninteractive
180+
run: |
181+
sudo apt-get update
182+
# Install dev tools
183+
sudo apt-get install re2c lemon
184+
sudo apt-get clean
185+
186+
- name: Checkout
187+
run: |
188+
git clone --depth 1 https://github.com/BRL-CAD/brlcad.git -b main
189+
cd brlcad/src/other/ext && rm -rf stepcode
190+
git clone --depth 1 https://github.com/stepcode/stepcode.git -b develop
191+
# Ordinarily BRL-CAD keeps track of what files are supposed to be
192+
# present in the repository. In this case we're not interested in
193+
# updating the list to the working stepcode filelist, so use an empty
194+
# list instead
195+
echo "set(stepcode_ignore_files)" > stepcode.dist
196+
cd ../../../../
197+
198+
199+
- name: Configure
200+
run: |
201+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
202+
cd brlcad
203+
cmake -S . -G Ninja -B build -DENABLE_ALL=ON -DCMAKE_BUILD_TYPE=Release -DEXT_BUILD_VERBOSE=ON
204+
cd ..
205+
206+
- name: Build
207+
run: |
208+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
209+
cd brlcad
210+
cmake --build build --config Release --target step-g
211+
cd ..
212+
213+
- name: Test
214+
run: |
215+
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
216+
cd brlcad/build
217+
./bin/step-g ../db/nist/NIST_MBE_PMI_3.stp -o nist3.g
218+
cd ../..
219+
220+
221+
brlcad_windows:
222+
name: BRL-CAD Windows step-g Test
223+
runs-on: windows-latest
224+
strategy:
225+
fail-fast: true
226+
steps:
227+
- name: Setup - CMake
228+
uses: lukka/get-cmake@latest
229+
230+
- name: Setup - Ninja
231+
uses: seanmiddleditch/gha-setup-ninja@master
232+
233+
- name: Add github workspace to path
234+
# https://github.community/t/deprecated-add-path/136621
235+
run: echo "$ENV{GITHUB_WORKSPACE}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
236+
237+
- name: Add msbuild to PATH
238+
uses: microsoft/setup-msbuild@v1.0.2
239+
240+
- name: Add cl.exe to PATH
241+
uses: ilammy/msvc-dev-cmd@v1
242+
243+
- name: Checkout
244+
run: |
245+
git clone --depth 1 https://github.com/BRL-CAD/brlcad.git -b main
246+
cd brlcad/src/other/ext
247+
cmake -E rm -r stepcode
248+
git clone --depth 1 https://github.com/stepcode/stepcode.git -b develop
249+
# Ordinarily BRL-CAD keeps track of what files are supposed to be
250+
# present in the repository. In this case we're not interested in
251+
# updating the list to the working stepcode filelist, so use an empty
252+
# list instead
253+
echo "set(stepcode_ignore_files)" > stepcode.dist
254+
cd ../../../../
255+
256+
- name: Configure
257+
run: |
258+
cd brlcad && cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DSC_ENABLE_TESTING=ON
259+
cd ..
260+
# We do the following in order to help ensure files are "flushed"
261+
# to disk before compilation is attempted
262+
# https://superuser.com/a/1553374/1286142
263+
powershell Write-VolumeCache C
264+
powershell Write-VolumeCache D
265+
266+
- name: Build
267+
run: |
268+
cd brlcad/build
269+
ninja -j1 -v step-g
270+
cd ../..
271+
272+
- name: Test
273+
run: |
274+
cd brlcad/build
275+
./bin/step-g.exe ../db/nist/NIST_MBE_PMI_3.stp -o nist3.g
276+
cd ../..
277+

.gitignore

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
# Common build directories used in the source tree
12
/build
3+
/.build
4+
5+
# Temporary files
6+
*~
7+
\#*\#
8+
.\#*
9+
[._]*.s[a-v][a-z]
10+
[._]*.sw[a-p]
11+
[._]s[a-v][a-z]
12+
[._]sw[a-p]
13+
**/__pycache__/
14+
15+
# OS specific files
16+
.DS_Store
17+
.DS_Store?
18+
19+
# Tool specific patterns
220
*.kdev4
321
.kdev_include_paths

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Paviot, Thomas (tpaviot)
1919
Pictor, Mark (mpictor)
2020
Reed, Nick (nickreed)
2121
Shah, Kesha (kesha, keshashah)
22+
Sparks, Devon (devonsparks)
2223
Thomas, Dawn (homovulgaris, madant)
2324
Wouters, Dave (davyw)
2425
Yapp, Clifford (starseeker)

0 commit comments

Comments
 (0)