CMakeLists.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. cmake_minimum_required(VERSION 3.10)
  2. project(spine-sdl)
  3. # Default flags
  4. include(${CMAKE_SOURCE_DIR}/../flags.cmake)
  5. # Add spine-cpp and spine-c
  6. add_subdirectory(${CMAKE_SOURCE_DIR}/../spine-cpp ${CMAKE_BINARY_DIR}/spine-cpp-build)
  7. add_subdirectory(${CMAKE_SOURCE_DIR}/../spine-c ${CMAKE_BINARY_DIR}/spine-c)
  8. # SDL
  9. include(FetchContent)
  10. FetchContent_Declare(SDL GIT_REPOSITORY https://github.com/libsdl-org/SDL GIT_TAG release-2.30.2)
  11. FetchContent_MakeAvailable(SDL)
  12. include_directories(src)
  13. # spine-sdl-c library
  14. add_library(spine-sdl-c STATIC src/spine-sdl-c.c src/spine-sdl-c.h src/stb_image.h)
  15. target_link_libraries(spine-sdl-c LINK_PUBLIC SDL2-static spine-c)
  16. install(TARGETS spine-sdl-c DESTINATION dist/lib)
  17. install(FILES src/spine-sdl-c.h src/stb_image.h DESTINATION dist/include)
  18. # spine-sdl-cpp library
  19. add_library(spine-sdl-cpp STATIC src/spine-sdl-cpp.cpp src/spine-sdl-cpp.h src/stb_image.h)
  20. target_link_libraries(spine-sdl-cpp LINK_PUBLIC SDL2-static spine-cpp)
  21. install(TARGETS spine-sdl-cpp DESTINATION dist/lib)
  22. install(FILES src/spine-sdl-cpp.h src/stb_image.h DESTINATION dist/include)
  23. # Example (spine-sdl-c)
  24. add_executable(spine-sdl-c-example example/main.c)
  25. target_link_libraries(spine-sdl-c-example SDL2-static spine-sdl-c)
  26. set_property(TARGET spine-sdl-c-example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/spine-sdl")
  27. # Example (spine-sdl-cpp)
  28. add_executable(spine-sdl-cpp-example example/main.cpp)
  29. target_link_libraries(spine-sdl-cpp-example SDL2-static spine-sdl-cpp)
  30. set_property(TARGET spine-sdl-cpp-example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/spine-sdl")
  31. # copy data to build directory
  32. add_custom_command(TARGET spine-sdl-c-example PRE_BUILD
  33. COMMAND ${CMAKE_COMMAND} -E copy_directory
  34. ${CMAKE_CURRENT_LIST_DIR}/data $<TARGET_FILE_DIR:spine-sdl-c-example>/data)
  35. add_custom_command(TARGET spine-sdl-cpp-example PRE_BUILD
  36. COMMAND ${CMAKE_COMMAND} -E copy_directory
  37. ${CMAKE_CURRENT_LIST_DIR}/data $<TARGET_FILE_DIR:spine-sdl-cpp-example>/data)