Update bmakecommon.mpt
[MPC.git] / .github / workflows / linux.yml
bloba89637ae7fd4ecdcccdd97cb9206026a05a49a93
1 name: linux
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       matrix:
21         include:
22           - CC: gcc-10
23             CXX: g++-10
24             PackageDeps: g++-10
25             platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
26             os: ubuntu-20.04
27     runs-on: ${{ matrix.os }}
28     name: ${{ matrix.os }} ${{ matrix.CXX }} ${{ matrix.feature }}
29     env:
30       DOC_ROOT: ${{ github.workspace }}/ACE_TAO
31       ACE_ROOT: ${{ github.workspace }}/ACE_TAO/ACE
32       TAO_ROOT: ${{ github.workspace }}/ACE_TAO/TAO
33       MPC_ROOT: ${{ github.workspace }}/
34       CC: ${{ matrix.CC }}
35       CXX: ${{ matrix.CXX }}
36     steps:
37     - name: checkout MPC
38       uses: actions/checkout@v4
39     - name: checkout ACE_TAO
40       uses: actions/checkout@v4
41       with:
42         repository: DOCGroup/ACE_TAO
43         path: ${{ env.DOC_ROOT }}
44     - name: Add Repo
45       run: |
46         wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
47         sudo apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ ${{ matrix.Repo }} main"
48       if: matrix.Repo != ''
49     - name: Add packages
50       run: |
51         sudo apt-get --yes update
52         sudo apt-get --yes install libxerces-c-dev libssl-dev ${{ matrix.PackageDeps }}
53     - name: create $ACE_ROOT/ace/config.h
54       run: |
55         '#include "ace/config-linux.h"' > ${env:ACE_ROOT}/ace/config.h
56       shell: pwsh
57     - name: create $ACE_ROOT/include/makeinclude/platform_macros.GNU
58       run: |
59         'ipv6=1' > ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
60         'xerces3=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
61         'ssl=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
62         'zlib=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
63       shell: pwsh
64     - name: add optional optional macros
65       run: |
66         '${{ matrix.optional_macros }}' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
67       shell: pwsh
68       if: matrix.optional_macros != ''
69     - name: extend $ACE_ROOT/include/makeinclude/platform_macros.GNU
70       run: |
71         '${{ matrix.platform_file }}' >>  ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU
72       shell: pwsh
73     - name: create $ACE_ROOT/bin/MakeProjectCreator/config/default.features
74       run: |
75         'ipv6=1' > ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
76         'xerces3=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
77         'ssl=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
78         'zlib=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
79       shell: pwsh
80     - name: add optional optional feature
81       run: |
82         '${{ matrix.optional_feature }}' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features
83       if: matrix.optional_feature != ''
84       shell: pwsh
85     - name: Run mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
86       run: |
87         perl ${env:ACE_ROOT}/bin/mwc.pl -type gnuace ${env:TAO_ROOT}/TAO_ACE.mwc -workers 4
88       shell: pwsh
89     - name: Build TAO_ACE project
90       run: |
91         make -j 6 -C ${env:TAO_ROOT}
92       shell: pwsh