CMakeLists.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. if(MSVC)
  2. message("MSCV detected")
  3. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
  4. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
  5. else()
  6. message("${CMAKE_C_FLAGS}")
  7. message("${CMAKE_CXX_FLAGS}")
  8. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -Wno-unused-parameter -std=c99")
  9. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wnon-virtual-dtor -pedantic -Wno-unused-parameter -std=c++11 -fno-exceptions -fno-rtti")
  10. endif()
  11. include(FetchContent)
  12. FetchContent_Declare(SDL GIT_REPOSITORY https://github.com/libsdl-org/SDL GIT_TAG release-2.30.2)
  13. FetchContent_MakeAvailable(SDL)
  14. include_directories(src)
  15. add_library(spine-sdl-c STATIC src/spine-sdl-c.c src/spine-sdl-c.h src/stb_image.h)
  16. target_link_libraries(spine-sdl-c LINK_PUBLIC SDL2-static spine-c)
  17. install(TARGETS spine-sdl-c DESTINATION dist/lib)
  18. install(FILES src/spine-sdl-c.h src/stb_image.h DESTINATION dist/include)
  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. add_executable(spine-sdl-c-example example/main.c)
  24. target_link_libraries(spine-sdl-c-example SDL2-static spine-sdl-c)
  25. set_property(TARGET spine-sdl-c-example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/spine-sdl")
  26. add_executable(spine-sdl-cpp-example example/main.cpp)
  27. target_link_libraries(spine-sdl-cpp-example SDL2-static spine-sdl-cpp)
  28. set_property(TARGET spine-sdl-cpp-example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/spine-sdl")
  29. # copy data to build directory
  30. add_custom_command(TARGET spine-sdl-c-example PRE_BUILD
  31. COMMAND ${CMAKE_COMMAND} -E copy_directory
  32. ${CMAKE_CURRENT_LIST_DIR}/data $<TARGET_FILE_DIR:spine-sdl-c-example>/data)
  33. add_custom_command(TARGET spine-sdl-cpp-example PRE_BUILD
  34. COMMAND ${CMAKE_COMMAND} -E copy_directory
  35. ${CMAKE_CURRENT_LIST_DIR}/data $<TARGET_FILE_DIR:spine-sdl-cpp-example>/data)