11 group: ${{ github.workflow }}-${{ github.ref }}
12 cancel-in-progress: true
20 actions: read # for github/codeql-action/init to get workflow details
21 contents: read # for actions/checkout to fetch code
22 security-events: write # for github/codeql-action/analyze to upload SARIF results
30 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
35 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
40 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
46 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
51 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
56 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
61 optional_macros: CCFLAGS+=-std=c++20
62 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
67 optional_macros: CCFLAGS+=-std=c++20
68 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
72 PackageDeps: clang-5.0
73 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
77 PackageDeps: clang-6.0
78 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
83 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
88 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
93 Repo: llvm-toolchain-$(lsb_release -cs)-9
94 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
99 Repo: llvm-toolchain-$(lsb_release -cs)-10
100 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
104 PackageDeps: clang-11
105 Repo: llvm-toolchain-$(lsb_release -cs)-11
106 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
110 PackageDeps: clang-12
111 Repo: llvm-toolchain-$(lsb_release -cs)-12
112 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
116 PackageDeps: clang-13
117 Repo: llvm-toolchain-$(lsb_release -cs)-13
118 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
122 PackageDeps: clang-14
123 Repo: llvm-toolchain-$(lsb_release -cs)-14
124 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
126 - feature: CORBA/e micro
130 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
132 optional_feature: corba_e_micro=1
133 optional_macros: corba_e_micro=1
134 - feature: CORBA/e compact
138 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
140 optional_feature: corba_e_compact=1
141 optional_macros: corba_e_compact=1
142 - feature: ACE for TAO
146 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
148 optional_feature: ace_for_tao=1
149 optional_macros: ace_for_tao=1
154 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
156 optional_feature: uses_wchar=1
157 optional_macros: inline=0
162 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
164 runs-on: ${{ matrix.os }}
165 name: ${{ matrix.os }} ${{ matrix.CXX }} ${{ matrix.feature }}
167 ACE_ROOT: ${{ github.workspace }}/ACE
168 TAO_ROOT: ${{ github.workspace }}/TAO
169 MPC_ROOT: ${{ github.workspace }}/MPC
171 CXX: ${{ matrix.CXX }}
173 - name: Checkout ACE_TAO
174 uses: actions/checkout@v3
176 uses: actions/checkout@v3
178 repository: DOCGroup/MPC
179 path: ${{ env.MPC_ROOT }}
180 - name: Add LLVM apt repo ${{ matrix.Repo }}
182 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
183 sudo apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ ${{ matrix.Repo }} main"
184 if: startsWith (matrix.Repo, 'llvm-toolchain')
185 - name: Add PPA apt repo ${{ matrix.Repo }}
187 sudo apt-add-repository ${{ matrix.Repo }}
188 if: startsWith (matrix.Repo, 'ppa:')
189 - name: Add apt packages ${{ matrix.PackageDeps }}
191 sudo apt-get --yes update
192 sudo apt-get --yes install libxerces-c-dev libssl-dev ${{ matrix.PackageDeps }}
193 - name: Create $ACE_ROOT/ace/config.h
195 '#include "ace/config-linux.h"' > ${env:ACE_ROOT}/ace/config.h
197 - name: Create $ACE_ROOT/include/makeinclude/platform_macros.GNU
199 'ipv6=1' > ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
200 'xerces3=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
201 'ssl=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
202 'INSTALL_PREFIX = ${{ github.workspace }}/installed' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
204 - name: Add optional platform macros
206 '${{ matrix.optional_macros }}' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
208 if: matrix.optional_macros != ''
209 - name: Extend $ACE_ROOT/include/makeinclude/platform_macros.GNU
211 '${{ matrix.platform_file }}' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
213 - name: Create $ACE_ROOT/bin/MakeProjectCreator/config/default.features
215 'ipv6=1' > ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
216 'xerces3=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
217 'ssl=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
218 'versioned_namespace=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
220 - name: Add optional MPC features
222 '${{ matrix.optional_feature }}' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
223 if: matrix.optional_feature != ''
225 - name: Initialize CodeQL
226 uses: github/codeql-action/init@v2
229 if: matrix.feature == 'CodeQL'
230 - name: Run mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
232 perl ${env:ACE_ROOT}/bin/mwc.pl -type gnuace ${env:TAO_ROOT}/TAO_ACE.mwc -workers 4
234 - name: Run mwc.pl on $(ACE_ROOT)/tests/tests.mwc
236 perl ${env:ACE_ROOT}/bin/mwc.pl -type gnuace ${env:ACE_ROOT}/tests/tests.mwc -workers 4
238 - name: Run mwc.pl on $(TAO_ROOT)/tests/IDL_Test
240 perl ${env:ACE_ROOT}/bin/mwc.pl -type gnuace ${env:TAO_ROOT}/tests/IDL_Test -workers 4
242 - name: Build TAO_ACE workspace
244 make -j 6 -C ${env:TAO_ROOT}
246 - name: Build ACE/tests workspace
248 make -j 6 -C ${env:ACE_ROOT}/tests
250 - name: Build TAO/tests/IDL_Test project
252 make -j 6 -C ${env:TAO_ROOT}/tests/IDL_Test
254 if: matrix.feature != 'CORBA/e micro'
255 - name: Perform CodeQL Analysis
256 uses: github/codeql-action/analyze@v2
257 if: matrix.feature == 'CodeQL'
258 - name: Install TAO_ACE workspace
260 make -C ${env:TAO_ROOT} install
262 - name: Test pkgconfig
263 if: matrix.CheckPkgConfig
265 cd ${{ github.workspace }}/installed/lib/pkgconfig
266 export PKG_CONFIG_PATH=.
267 for f in *.pc; do pkg-config --print-errors --exists ${f%.pc}; done