build.yml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. name: Build
  2. on:
  3. pull_request:
  4. push:
  5. branches: [ ci, master, latest, 3.3-stable ]
  6. workflow_dispatch:
  7. permissions:
  8. statuses: write
  9. contents: read
  10. jobs:
  11. build-linux-clang:
  12. name: Linux (Clang)
  13. runs-on: ubuntu-latest
  14. timeout-minutes: 4
  15. env:
  16. CC: clang
  17. CFLAGS: -Werror
  18. steps:
  19. - uses: actions/checkout@v4
  20. - name: Install dependencies
  21. run: |
  22. sudo apt update
  23. sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libwayland-dev libxkbcommon-dev
  24. - name: Configure Null shared library
  25. run: cmake -B build-null-shared -D GLFW_BUILD_WAYLAND=OFF -D GLFW_BUILD_X11=OFF -D BUILD_SHARED_LIBS=ON
  26. - name: Build Null shared library
  27. run: cmake --build build-null-shared --parallel
  28. - name: Configure X11 shared library
  29. run: cmake -B build-x11-shared -D GLFW_BUILD_WAYLAND=OFF -D GLFW_BUILD_X11=ON -D BUILD_SHARED_LIBS=ON
  30. - name: Build X11 shared library
  31. run: cmake --build build-x11-shared --parallel
  32. - name: Configure Wayland shared library
  33. run: cmake -B build-wayland-shared -D GLFW_BUILD_WAYLAND=ON -D GLFW_BUILD_X11=OFF -D BUILD_SHARED_LIBS=ON
  34. - name: Build Wayland shared library
  35. run: cmake --build build-wayland-shared --parallel
  36. - name: Configure Wayland+X11 static library
  37. run: cmake -B build-full-static -D GLFW_BUILD_WAYLAND=ON -D GLFW_BUILD_X11=ON
  38. - name: Build Wayland+X11 static library
  39. run: cmake --build build-full-static --parallel
  40. - name: Configure Wayland+X11 shared library
  41. run: cmake -B build-full-shared -D GLFW_BUILD_WAYLAND=ON -D BUILD_SHARED_LIBS=ON -D GLFW_BUILD_X11=ON
  42. - name: Build Wayland+X11 shared library
  43. run: cmake --build build-full-shared --parallel
  44. build-macos-clang:
  45. name: macOS (Clang)
  46. runs-on: macos-latest
  47. timeout-minutes: 4
  48. env:
  49. CFLAGS: -Werror
  50. MACOSX_DEPLOYMENT_TARGET: 10.11
  51. CMAKE_OSX_ARCHITECTURES: x86_64;arm64
  52. steps:
  53. - uses: actions/checkout@v4
  54. - name: Configure Null shared library
  55. run: cmake -B build-null-shared -D GLFW_BUILD_COCOA=OFF -D BUILD_SHARED_LIBS=ON
  56. - name: Build Null shared library
  57. run: cmake --build build-null-shared --parallel
  58. - name: Configure Cocoa static library
  59. run: cmake -B build-cocoa-static
  60. - name: Build Cocoa static library
  61. run: cmake --build build-cocoa-static --parallel
  62. - name: Configure Cocoa shared library
  63. run: cmake -B build-cocoa-shared -D BUILD_SHARED_LIBS=ON
  64. - name: Build Cocoa shared library
  65. run: cmake --build build-cocoa-shared --parallel
  66. build-windows-vs2022:
  67. name: Windows (VS2022)
  68. runs-on: windows-latest
  69. timeout-minutes: 4
  70. env:
  71. CFLAGS: /WX
  72. steps:
  73. - uses: actions/checkout@v4
  74. - name: Configure Win32 shared x86 library
  75. run: cmake -B build-win32-shared-x86 -G "Visual Studio 17 2022" -A Win32 -D BUILD_SHARED_LIBS=ON
  76. - name: Build Win32 shared x86 library
  77. run: cmake --build build-win32-shared-x86 --parallel
  78. - name: Configure Win32 static x64 library
  79. run: cmake -B build-win32-static-x64 -G "Visual Studio 17 2022" -A x64
  80. - name: Build Win32 static x64 library
  81. run: cmake --build build-win32-static-x64 --parallel
  82. - name: Configure Win32 shared x64 library
  83. run: cmake -B build-win32-shared-x64 -G "Visual Studio 17 2022" -A x64 -D BUILD_SHARED_LIBS=ON
  84. - name: Build Win32 shared x64 library
  85. run: cmake --build build-win32-shared-x64 --parallel