Merge pull request #2200 from DOCGroup/jwillemsen-patch-1
[ACE_TAO.git] / .github / workflows / cmake.yml
blob9f2b8ae0876cadee5724551c312ae6e603e1b3ac
1 name: cmake
3 on:
4   push:
5   pull_request:
6   schedule:
7     - cron: '0 1 * * SUN'
8   workflow_dispatch:
10 concurrency:
11   group: ${{ github.workflow }}-${{ github.ref }}
12   cancel-in-progress: true
14 permissions:
15   contents: read
17 jobs:
18   build:
19     strategy:
20       fail-fast: false
21       matrix:
22         include:
23           - CC: gcc-12
24             CXX: g++-12
25             PackageDeps: g++-12
26             os: ubuntu-22.04
27           - CC: vs2019
28             CXX: vs2019
29             os: windows-2019
30     runs-on: ${{ matrix.os }}
31     name: ${{ matrix.os }} ${{ matrix.CXX }}
32     env:
33       ACE_ROOT: ${{ github.workspace }}/ACE
34       MPC_ROOT: ${{ github.workspace }}/MPC
35       CC: ${{ matrix.CC }}
36       CXX: ${{ matrix.CXX }}
37     steps:
38     - name: checkout ACE/TAO
39       uses: actions/checkout@v4
40     - name: checkout MPC
41       uses: actions/checkout@v4
42       with:
43         repository: DOCGroup/MPC
44         path: ${{ env.MPC_ROOT }}
45     - name: Add Repo
46       run: |
47         wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
48         sudo apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ ${{ matrix.Repo }} main"
49       if: matrix.Repo != ''
50     - name: Add packages
51       run: |
52         sudo apt-get --yes update
53         sudo apt-get --yes install ${{ matrix.PackageDeps }}
54       if: matrix.PackageDeps != ''
55     - name: create $ACE_ROOT/ace/config.h
56       run: |
57         '#ifdef linux'                    > ${env:ACE_ROOT}/ace/config.h
58         '# include "ace/config-linux.h"' >> ${env:ACE_ROOT}/ace/config.h
59         '#else'                          >> ${env:ACE_ROOT}/ace/config.h
60         '# include "ace/config-win32.h"' >> ${env:ACE_ROOT}/ace/config.h
61         '#endif'                         >> ${env:ACE_ROOT}/ace/config.h
62       shell: pwsh
63     - name: Run mwc.pl on $(ACE_ROOT)/ace/ace.mwc
64       run: |
65         perl ${env:ACE_ROOT}/bin/mwc.pl -type cmake ${env:ACE_ROOT}/ace/ace.mwc -workers 6
66       shell: pwsh
67     - name: Run mwc.pl on $(ACE_ROOT)/apps/gperf/src
68       run: |
69         perl ${env:ACE_ROOT}/bin/mwc.pl -type cmake ${env:ACE_ROOT}/apps/gperf/src
70       shell: pwsh
71     - name: Build ace project
72       run: |
73         cd ${env:ACE_ROOT}/ace
74         cmake -S . -B build
75         cmake --build build -j6
76       shell: pwsh
77     - name: Build ACE/apps/gperf/src project
78       run: |
79         cd ${env:ACE_ROOT}/apps/gperf/src
80         cmake -S . -B build
81         cmake --build build -j6
82       shell: pwsh