diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 5e9594154..000000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,57 +0,0 @@ -cmake_minimum_required(VERSION 3.17) -project(spine) - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR} CACHE PATH "Install location" FORCE) -endif() -set(CMAKE_VERBOSE_MAKEFILE ON) -option(SPINE_SFML "Build spine SFML API" OFF) -option(SPINE_SANITIZE "Build with sanitization" OFF) -option(BUILD_TESTING "Build with testing" ON) - -if(MSVC) - message("MSCV detected") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") -else() - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wunused-value -Wno-variadic-macros -Wextra -pedantic -Wshadow -std=c99") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wunused-value -Wno-variadic-macros -Wextra -Wnon-virtual-dtor -pedantic -Wshadow -std=c++11 -fno-exceptions -fno-rtti") - - if (${SPINE_SANITIZE}) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize=undefined") - endif() -endif() - -if((${SPINE_SFML}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-sfml")) - if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CMAKE_OSX_ARCHITECTURES x86_64) - set(ONLY_ACTIVE_ARCH NO) - endif() - add_subdirectory(spine-c) - add_subdirectory(spine-cpp) - add_subdirectory(spine-sfml/c) - add_subdirectory(spine-sfml/cpp) -elseif((${SPINE_SDL}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-sdl")) - if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CMAKE_OSX_ARCHITECTURES x86_64;arm64) - set(ONLY_ACTIVE_ARCH NO) - endif() - add_subdirectory(spine-c) - add_subdirectory(spine-cpp) - add_subdirectory(spine-sdl) -elseif((${SPINE_GLFW}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-glfw")) - add_subdirectory(spine-cpp) - add_subdirectory(spine-glfw) -else() - add_subdirectory(spine-c) - add_subdirectory(spine-cpp) - if (${BUILD_TESTING}) - add_subdirectory(spine-cpp/spine-cpp-unit-tests) - endif() -endif() - -# Create config file that include the exported targets -configure_file(SpineConfig.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/SpineConfig.cmake" - @ONLY) \ No newline at end of file diff --git a/spine-c/CMakeLists.txt b/spine-c/CMakeLists.txt index 906f7b059..b7e4d2aa2 100644 --- a/spine-c/CMakeLists.txt +++ b/spine-c/CMakeLists.txt @@ -1,8 +1,14 @@ +cmake_minimum_required(VERSION 3.10) +project(spine-c) + +include(${CMAKE_CURRENT_LIST_DIR}/../flags.cmake) + include_directories(include) file(GLOB INCLUDES "spine-c/include/**/*.h") -file(GLOB SOURCES "spine-c/src/**/*.c" "spine-c/src/**/*.cpp") +file(GLOB SOURCES "spine-c/src/**/*.c") add_library(spine-c STATIC ${SOURCES} ${INCLUDES}) target_include_directories(spine-c PUBLIC spine-c/include) + install(TARGETS spine-c DESTINATION dist/lib) install(FILES ${INCLUDES} DESTINATION dist/include) \ No newline at end of file diff --git a/spine-cpp/CMakeLists.txt b/spine-cpp/CMakeLists.txt index 68f1f0b14..9829b42cd 100644 --- a/spine-cpp/CMakeLists.txt +++ b/spine-cpp/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.10) project(spine-cpp) -include(${CMAKE_SOURCE_DIR}/../flags.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/../flags.cmake) include_directories(include) file(GLOB INCLUDES "spine-cpp/include/**/*.h") diff --git a/spine-sdl/CMakeLists.txt b/spine-sdl/CMakeLists.txt index 7e2b67b03..0d636fadc 100644 --- a/spine-sdl/CMakeLists.txt +++ b/spine-sdl/CMakeLists.txt @@ -1,34 +1,38 @@ -if(MSVC) - message("MSCV detected") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS") -else() - message("${CMAKE_C_FLAGS}") - message("${CMAKE_CXX_FLAGS}") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -Wno-unused-parameter -std=c99") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wnon-virtual-dtor -pedantic -Wno-unused-parameter -std=c++11 -fno-exceptions -fno-rtti") -endif() +cmake_minimum_required(VERSION 3.10) +project(spine-sdl) +# Default flags +include(${CMAKE_SOURCE_DIR}/../flags.cmake) + +# Add spine-cpp and spine-c +add_subdirectory(${CMAKE_SOURCE_DIR}/../spine-cpp ${CMAKE_BINARY_DIR}/spine-cpp-build) +add_subdirectory(${CMAKE_SOURCE_DIR}/../spine-c ${CMAKE_BINARY_DIR}/spine-c) + +# SDL include(FetchContent) FetchContent_Declare(SDL GIT_REPOSITORY https://github.com/libsdl-org/SDL GIT_TAG release-2.30.2) FetchContent_MakeAvailable(SDL) include_directories(src) +# spine-sdl-c library add_library(spine-sdl-c STATIC src/spine-sdl-c.c src/spine-sdl-c.h src/stb_image.h) target_link_libraries(spine-sdl-c LINK_PUBLIC SDL2-static spine-c) install(TARGETS spine-sdl-c DESTINATION dist/lib) install(FILES src/spine-sdl-c.h src/stb_image.h DESTINATION dist/include) +# spine-sdl-cpp library add_library(spine-sdl-cpp STATIC src/spine-sdl-cpp.cpp src/spine-sdl-cpp.h src/stb_image.h) target_link_libraries(spine-sdl-cpp LINK_PUBLIC SDL2-static spine-cpp) install(TARGETS spine-sdl-cpp DESTINATION dist/lib) install(FILES src/spine-sdl-cpp.h src/stb_image.h DESTINATION dist/include) +# Example (spine-sdl-c) add_executable(spine-sdl-c-example example/main.c) target_link_libraries(spine-sdl-c-example SDL2-static spine-sdl-c) set_property(TARGET spine-sdl-c-example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/spine-sdl") +# Example (spine-sdl-cpp) add_executable(spine-sdl-cpp-example example/main.cpp) target_link_libraries(spine-sdl-cpp-example SDL2-static spine-sdl-cpp) set_property(TARGET spine-sdl-cpp-example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/spine-sdl") diff --git a/spine-sfml/c/CMakeLists.txt b/spine-sfml/c/CMakeLists.txt index dcc33a080..141e3e95b 100644 --- a/spine-sfml/c/CMakeLists.txt +++ b/spine-sfml/c/CMakeLists.txt @@ -1,3 +1,8 @@ +cmake_minimum_required(VERSION 3.10) +project(spine-sfml) + +# Default flags +include(${CMAKE_CURRENT_LIST_DIR}/../../flags.cmake) # # First download and extract SFML 2.5.1 for the respective OS we are on # @@ -44,6 +49,9 @@ else() endif() endif() +# Add spine-c +add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../spine-c ${CMAKE_BINARY_DIR}/spine-c-build) + # Define spine-sfml library include_directories(src ${SFML_DIR}/include) file(GLOB INCLUDES "src/**/*.h") diff --git a/spine-sfml/cpp/CMakeLists.txt b/spine-sfml/cpp/CMakeLists.txt index 8215285e5..c1ac6a33d 100644 --- a/spine-sfml/cpp/CMakeLists.txt +++ b/spine-sfml/cpp/CMakeLists.txt @@ -1,3 +1,9 @@ +cmake_minimum_required(VERSION 3.10) +project(spine-sfml) + +# Default flags +include(${CMAKE_CURRENT_LIST_DIR}/../../flags.cmake) + # # First download and extract SFML 2.6.1 for the respective OS we are on # @@ -44,14 +50,8 @@ else() endif() endif() -if(MSVC) - message("MSCV detected") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS") -else() - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c99") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wnon-virtual-dtor -pedantic -std=c++11 -fno-exceptions -fno-rtti") -endif() +# Add spine-cpp +add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../spine-cpp ${CMAKE_BINARY_DIR}/spine-cpp-build) # Define spine-sfml-cpp library include_directories(src ${SFML_DIR}/include)