Fix hwt & update mt files #107
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Windows Latest MSVC", artifact: "Windows-MSVC.tar.xz", | |
os: windows-latest, | |
build_type: "Release", cc: "cl", cxx: "cl", | |
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat", | |
option: "-D OC_OSCORE_ENABLED=OFF -DUSE_CONSOLE=OFF", | |
option_name: "unsecured" | |
} | |
- { | |
name: "Windows Latest MSVC", artifact: "Windows-MSVC.tar.xz", | |
os: windows-latest, | |
build_type: "Release", cc: "cl", cxx: "cl", | |
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat", | |
option: "-D OC_OSCORE_ENABLED=ON -DUSE_CONSOLE=OFF", | |
option_name: "secured" | |
} | |
- { | |
name: "Windows Latest MSVC", artifact: "Windows-MSVC.tar.xz", | |
os: windows-latest, | |
build_type: "Release", cc: "cl", cxx: "cl", | |
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat", | |
option: "-D OC_OSCORE_ENABLED=ON -DUSE_CONSOLE=OFF -DOC_DNS_SD_ENABLED=ON", | |
option_name: "secured_mdns" | |
} | |
- { | |
name: "Windows Latest MSVC", artifact: "Windows-MSVC.tar.xz", | |
os: windows-latest, | |
build_type: "RelWithDebInfo", cc: "cl", cxx: "cl", | |
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat", | |
option: "-D OC_OSCORE_ENABLED=ON -DUSE_CONSOLE=ON", | |
option_name: "secured_debuginfo" | |
} | |
#- { | |
# name: "Windows Latest MinGW", artifact: "Windows-MinGW.tar.xz", | |
# os: windows-latest, | |
# build_type: "Release", cc: "gcc", cxx: "g++" | |
# } | |
# - { | |
# name: "Ubuntu Latest GCC", artifact: "Linux.tar.xz", | |
# os: ubuntu-latest, | |
# build_type: "Release", cc: "gcc", cxx: "g++" | |
# } | |
#- { | |
# name: "macOS Latest Clang", artifact: "macOS.tar.xz", | |
# os: macos-latest, | |
# build_type: "Release", cc: "clang", cxx: "clang++" | |
# } | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Checkout Submodules | |
run: git submodule update --init --recursive | |
- name: Download Ninja and CMake | |
id: cmake_and_ninja | |
shell: cmake -P {0} | |
run: | | |
set(ninja_version "1.9.0") | |
set(cmake_version "3.16.2") | |
message(STATUS "Using host CMake version: ${CMAKE_VERSION}") | |
if ("${{ runner.os }}" STREQUAL "Windows") | |
set(ninja_suffix "win.zip") | |
set(cmake_suffix "win64-x64.zip") | |
set(cmake_dir "cmake-${cmake_version}-win64-x64/bin") | |
elseif ("${{ runner.os }}" STREQUAL "Linux") | |
set(ninja_suffix "linux.zip") | |
set(cmake_suffix "Linux-x86_64.tar.gz") | |
set(cmake_dir "cmake-${cmake_version}-Linux-x86_64/bin") | |
elseif ("${{ runner.os }}" STREQUAL "macOS") | |
set(ninja_suffix "mac.zip") | |
set(cmake_suffix "Darwin-x86_64.tar.gz") | |
set(cmake_dir "cmake-${cmake_version}-Darwin-x86_64/CMake.app/Contents/bin") | |
endif() | |
set(ninja_url "https://github.com/ninja-build/ninja/releases/download/v${ninja_version}/ninja-${ninja_suffix}") | |
file(DOWNLOAD "${ninja_url}" ./ninja.zip SHOW_PROGRESS) | |
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ninja.zip) | |
set(cmake_url "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/cmake-${cmake_version}-${cmake_suffix}") | |
file(DOWNLOAD "${cmake_url}" ./cmake.zip SHOW_PROGRESS) | |
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./cmake.zip) | |
# Save the path for other steps | |
file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/${cmake_dir}" cmake_dir) | |
message("::set-output name=cmake_dir::${cmake_dir}") | |
if (NOT "${{ runner.os }}" STREQUAL "Windows") | |
execute_process( | |
COMMAND chmod +x ninja | |
COMMAND chmod +x ${cmake_dir}/cmake | |
) | |
endif() | |
- name: folder creation | |
run: | | |
mkdir build_${{ matrix.config.option_name }} | |
cd build_${{ matrix.config.option_name }} | |
ls | |
- name: Configure | |
shell: cmake -P {0} | |
run: | | |
set(ENV{CC} ${{ matrix.config.cc }}) | |
set(ENV{CXX} ${{ matrix.config.cxx }}) | |
if ("${{ runner.os }}" STREQUAL "Windows" AND NOT "x${{ matrix.config.environment_script }}" STREQUAL "x") | |
execute_process( | |
COMMAND "${{ matrix.config.environment_script }}" && set | |
OUTPUT_FILE environment_script_output.txt | |
) | |
file(STRINGS environment_script_output.txt output_lines) | |
foreach(line IN LISTS output_lines) | |
if (line MATCHES "^([a-zA-Z0-9_-]+)=(.*)$") | |
set(ENV{${CMAKE_MATCH_1}} "${CMAKE_MATCH_2}") | |
endif() | |
endforeach() | |
endif() | |
file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/ninja" ninja_program) | |
execute_process( | |
COMMAND ${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake | |
-S . | |
-B build_${{ matrix.config.option_name }} | |
-D CMAKE_BUILD_TYPE=${{ matrix.config.build_type }} ${{ matrix.config.option }} | |
-G Ninja | |
-D CMAKE_MAKE_PROGRAM=${ninja_program} | |
RESULT_VARIABLE result | |
) | |
if (NOT result EQUAL 0) | |
message(FATAL_ERROR "Bad exit status") | |
endif() | |
- name: Build | |
shell: cmake -P {0} | |
run: | | |
set(ENV{NINJA_STATUS} "[%f/%t %o/sec] ") | |
if ("${{ runner.os }}" STREQUAL "Windows" AND NOT "x${{ matrix.config.environment_script }}" STREQUAL "x") | |
file(STRINGS environment_script_output.txt output_lines) | |
foreach(line IN LISTS output_lines) | |
if (line MATCHES "^([a-zA-Z0-9_-]+)=(.*)$") | |
set(ENV{${CMAKE_MATCH_1}} "${CMAKE_MATCH_2}") | |
endif() | |
endforeach() | |
endif() | |
execute_process( | |
COMMAND ${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake --build build_${{ matrix.config.option_name }} | |
RESULT_VARIABLE result | |
) | |
if (NOT result EQUAL 0) | |
message(FATAL_ERROR "Bad exit status") | |
endif() | |
- name: Upload executables ${{ matrix.config.option_name }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: knx_iot_virtual_${{ matrix.config.option_name }} | |
path: | | |
D:/a/KNX-IOT-Virtual/KNX-IOT-Virtual/build_${{ matrix.config.option_name }}/knx_iot_virtual_gui_pb.exe | |
D:/a/KNX-IOT-Virtual/KNX-IOT-Virtual/knx_iot_virtual_pb_KNX_S_00FA10010400_P_ABY8B77J50YXMUDW3DG4.png | |
D:/a/KNX-IOT-Virtual/KNX-IOT-Virtual/build_${{ matrix.config.option_name }}/knx_iot_virtual_gui_sa.exe | |
D:/a/KNX-IOT-Virtual/KNX-IOT-Virtual/knx_iot_virtual_sa_KNX_S_00FA10010700_P_0MK4U5LV950ST3VRXL8G.png |