Skip to content

Commit

Permalink
[CI]: Add windows-cmake-msys2.yaml (and fix CMakeLists.txt)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jarod42 committed Aug 29, 2024
1 parent b056fc0 commit 76d0549
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 14 deletions.
36 changes: 36 additions & 0 deletions .github/workflows/windows-cmake-msys2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Windows-cmake-msys2
on: [push, pull_request]
jobs:
Build-Guisan:
runs-on: windows-latest
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: clang64
update: true
install: >-
mingw-w64-clang-x86_64-cmake
mingw-w64-clang-x86_64-make
mingw-w64-clang-x86_64-clang
mingw-w64-clang-x86_64-SDL2
mingw-w64-clang-x86_64-SDL2_image
mingw-w64-clang-x86_64-SDL2_ttf
- name: Check out repository code
uses: actions/checkout@v4

- name: Build
shell: msys2 {0}
run: |
mkdir build
cd build
cmake ..
cmake --build .
- name: artifact
uses: actions/upload-artifact@v4
with:
name: guisan-msys2
path: |
build/**.dll
build/**.a
33 changes: 19 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ IF(ENABLE_OPENGL AND OPENGL_FOUND)
IF(WIN32)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_opengl ${OPENGL_LIBRARY} ${PROJECT_NAME})
ENDIF(WIN32)
ADD_CUSTOM_TARGET(lib DEPENDS ${PROJECT_NAME}_opengl) # Create symlink

SET_TARGET_PROPERTIES(${PROJECT_NAME}_opengl PROPERTIES
VERSION ${${PROJECT_NAME}_VERSION}
SOVERSION ${${PROJECT_NAME}_SOVERSION}
Expand All @@ -148,11 +148,13 @@ ENDIF(ENABLE_OPENGL AND OPENGL_FOUND)
# The Guisan SDL extension library
OPTION(ENABLE_SDL "Enable the Guisan SDL extension" ON)
OPTION(BUILD_GUISAN_SDL_SHARED "Build the Guisan SDL extension library as a shared library." ON)
FIND_PACKAGE(SDL)
FIND_PACKAGE(SDL_image)
IF(ENABLE_SDL AND SDL_FOUND AND SDLIMAGE_FOUND)

INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
IF(ENABLE_SDL)
FIND_PACKAGE(SDL2 REQUIRED)
FIND_PACKAGE(SDL2_image REQUIRED)
FIND_PACKAGE(SDL2_ttf REQUIRED)

INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})

# The Guichan SDL extension source
FILE(GLOB GUISAN_SDL_HEADER include/guisan/sdl.hpp)
Expand All @@ -175,14 +177,17 @@ IF(ENABLE_SDL AND SDL_FOUND AND SDLIMAGE_FOUND)
${GUISAN_SDL_HEADERS}
${GUISAN_SDL_CONTRIB_HEADERS}
${GUISAN_SDL_SRC})
IF(WIN32)
IF(MINGW)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_sdl ${MINGW32_LIBRARY} ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} SDLmain ${PROJECT_NAME})
ELSE(MINGW)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_sdl ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY} SDLmain ${PROJECT_NAME})
ENDIF(MINGW)
ENDIF(WIN32)
ADD_CUSTOM_TARGET(lib DEPENDS ${PROJECT_NAME}_sdl) # Create symlink
if(TARGET SDL2::SDL2main)
MESSAGE(STATUS "SDL2main used")
# It has an implicit dependency on SDL2 functions, so it MUST be added before SDL2::SDL2 (or SDL2::SDL2-static)
target_link_libraries(${PROJECT_NAME}_sdl PRIVATE SDL2::SDL2main)
endif()
IF(MINGW)
MESSAGE(STATUS "MINGW32_LIBRARY: ${MINGW32_LIBRARY}")
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_sdl ${MINGW32_LIBRARY})
ENDIF(MINGW)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_sdl PRIVATE SDL2::SDL2 SDL2_image::SDL2_image SDL2_ttf::SDL2_ttf ${PROJECT_NAME})

SET_TARGET_PROPERTIES(${PROJECT_NAME}_sdl PROPERTIES
VERSION ${${PROJECT_NAME}_VERSION}
SOVERSION ${${PROJECT_NAME}_SOVERSION}
Expand All @@ -195,7 +200,7 @@ IF(ENABLE_SDL AND SDL_FOUND AND SDLIMAGE_FOUND)
INSTALL(FILES ${GUISAN_SDL_HEADER} DESTINATION include/guisan/)
INSTALL(FILES ${GUISAN_SDL_HEADERS} DESTINATION include/guisan/sdl/)
INSTALL(FILES ${GUISAN_SDL_CONTRIB_HEADERS} DESTINATION include/guisan/contrib/sdl/)
ENDIF(ENABLE_SDL AND SDL_FOUND AND SDLIMAGE_FOUND)
ENDIF(ENABLE_SDL)

# Make uninstall target
#CONFIGURE_FILE(
Expand Down

0 comments on commit 76d0549

Please sign in to comment.