Skip to content

Commit

Permalink
#1020 Add msys/mingw builds to CI
Browse files Browse the repository at this point in the history
* Add msys build to CI

* Regenerate amalgamated files after bake update

* Run testsuite on msys/mingw targets
  • Loading branch information
SanderMertens authored Aug 6, 2023
1 parent d09e2a5 commit f3424e4
Show file tree
Hide file tree
Showing 160 changed files with 78,480 additions and 78,307 deletions.
109 changes: 108 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,59 @@ jobs:
- name: build examples (release)
run: bake/bake examples --strict --cfg debug

build-msys:
runs-on: windows-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64 }
- { sys: mingw32 }
- { sys: ucrt64 }
- { sys: clang64 }

defaults:
run:
shell: msys2 {0}

steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
curl
git
pacboy: >-
toolchain:p
cmake:p
- name: create cmake build folders
run: |
mkdir cmake_build
mkdir examples/c/cmake_build
mkdir examples/cpp/cmake_build
- name: build flecs
working-directory: cmake_build
run: |
cmake -G "MinGW Makefiles" -DFLECS_STRICT=ON ..
cmake --build . -j 4
- name: build c examples
working-directory: examples/c/cmake_build
run: |
cmake -G "MinGW Makefiles" -DFLECS_STRICT=ON ..
cmake --build . -j 4
- name: build c++ examples
working-directory: examples/cpp/cmake_build
run: |
cmake -G "MinGW Makefiles" -DFLECS_STRICT=ON ..
cmake --build . -j 4
build:
needs: build-linux
runs-on: ${{ matrix.target.os }}
Expand Down Expand Up @@ -559,7 +612,7 @@ jobs:
./bake setup --local
- name: build flecs
run: bake/bake --strict
run: bake/bake

- name: test api
run: bake/bake run test\api -- -j 8
Expand All @@ -576,6 +629,60 @@ jobs:
- name: test c++
run: bake/bake run test\cpp_api -- -j 8

test-msys:
runs-on: windows-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64 }
- { sys: mingw32 }
- { sys: ucrt64 }
- { sys: clang64 }

defaults:
run:
shell: msys2 {0}

steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
curl
git
pacboy: >-
toolchain:p
cmake:p
- name: install bake
run: |
cp `which mingw32-make` /usr/bin/make
git clone https://github.com/SanderMertens/bake
make -C bake/build-Mingw
bake/bake setup
- name: build flecs
run: bake/bake --strict

- name: test api
run: bake/bake run test/api -- -j 8

- name: test addons
run: bake/bake run test/addons -- -j 8

- name: test meta
run: bake/bake run test/meta -- -j 8

- name: test collections
run: bake/bake run test/collections -- -j 8

- name: test c++
run: bake/bake run test/cpp_api -- -j 8

test-sanitized-api:
needs: [ build-linux ]
runs-on: ${{ matrix.os }}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Flecs is a fast and lightweight Entity Component System that lets you build game
- Automatic component registration that works out of the box across shared libraries/DLLs
- Write free functions with [queries](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/queries/basics) or run code automatically in [systems](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/systems/pipeline)
- Run games on multiple CPU cores with a fast lockless scheduler
- Compiles warning-free on 8 compilers on all major platforms, with [CI](https://github.com/SanderMertens/flecs/actions) running more than 6000 tests
- Verified on all major compilers and platforms with [CI](https://github.com/SanderMertens/flecs/actions) running more than 6000 tests
- Integrated [reflection framework](https://www.flecs.dev/flecs/group__c__addons__meta.html) with [JSON serializer](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/reflection/basics_json) and support for [runtime components](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/reflection/runtime_component)
- [Unit annotations](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/reflection/units) for components
- Powerful [query language](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/rules) with support for [joins](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/rules/setting_variables) and [inheritance](https://github.com/SanderMertens/flecs/tree/master/examples/cpp/rules/component_inheritance)
Expand Down
48 changes: 24 additions & 24 deletions examples/c/entities/basics/include/basics/bake_config.h
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef BASICS_BAKE_CONFIG_H
#define BASICS_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif

/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef BASICS_BAKE_CONFIG_H
#define BASICS_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef FWD_DECLARE_COMPONENT_BAKE_CONFIG_H
#define FWD_DECLARE_COMPONENT_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif

/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef FWD_DECLARE_COMPONENT_BAKE_CONFIG_H
#define FWD_DECLARE_COMPONENT_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif
48 changes: 24 additions & 24 deletions examples/c/entities/hierarchy/include/hierarchy/bake_config.h
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef HIERARCHY_BAKE_CONFIG_H
#define HIERARCHY_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif

/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef HIERARCHY_BAKE_CONFIG_H
#define HIERARCHY_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif
48 changes: 24 additions & 24 deletions examples/c/entities/hooks/include/hooks/bake_config.h
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef HOOKS_BAKE_CONFIG_H
#define HOOKS_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif

/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef HOOKS_BAKE_CONFIG_H
#define HOOKS_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef ITERATE_COMPONENTS_BAKE_CONFIG_H
#define ITERATE_COMPONENTS_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif

/*
)
(.)
.|.
| |
_.--| |--._
.-'; ;`-'& ; `&.
\ & ; & &_/
|"""---...---"""|
\ | | | | | | | /
`---.|.|.|.---'
* This file is generated by bake.lang.c for your convenience. Headers of
* dependencies will automatically show up in this file. Include bake_config.h
* in your main project file. Do not edit! */

#ifndef ITERATE_COMPONENTS_BAKE_CONFIG_H
#define ITERATE_COMPONENTS_BAKE_CONFIG_H

/* Headers of public dependencies */
#include <flecs.h>

#endif
Loading

0 comments on commit f3424e4

Please sign in to comment.