浏览代码

[sdl] Initial scafold.

Mario Zechner 3 年之前
父节点
当前提交
e7043f3bd2

+ 13 - 3
CMakeLists.txt

@@ -11,8 +11,8 @@ if(MSVC)
 	set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
 	set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
 	set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}")
 	set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}")
 else()
 else()
-	set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wunused-value -Wno-c++11-long-long -Wno-variadic-macros -Werror -Wextra -pedantic -Wnonportable-include-path -Wshadow -std=c89")
-	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wunused-value -Wno-c++11-long-long -Wno-variadic-macros -Werror -Wextra -Wnon-virtual-dtor -pedantic -Wnonportable-include-path -Wshadow -std=c++11 -fno-exceptions -fno-rtti")
+	set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wunused-value -Wno-c++11-long-long -Wno-variadic-macros -Wextra -pedantic -Wnonportable-include-path -Wshadow -std=c89")
+	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wunused-value -Wno-c++11-long-long -Wno-variadic-macros -Wextra -Wnon-virtual-dtor -pedantic -Wnonportable-include-path -Wshadow -std=c++11 -fno-exceptions -fno-rtti")
 
 
 	if (${SPINE_SANITIZE})
 	if (${SPINE_SANITIZE})
 		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined")
 		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined")
@@ -22,7 +22,7 @@ endif()
 
 
 if((${SPINE_SFML}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-sfml"))
 if((${SPINE_SFML}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-sfml"))
 	if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 	if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-		set(CMAKE_OSX_ARCHITECTURES x86_64)
+		set(CMAKE_OSX_ARCHITECTURES x86_64;arm64)
 		set(ONLY_ACTIVE_ARCH NO)
 		set(ONLY_ACTIVE_ARCH NO)
 	endif()
 	endif()
 	add_subdirectory(spine-c)
 	add_subdirectory(spine-c)
@@ -31,5 +31,15 @@ if((${SPINE_SFML}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-sfml"))
 	add_subdirectory(spine-sfml/cpp)
 	add_subdirectory(spine-sfml/cpp)
 endif()
 endif()
 
 
+if((${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)
+endif()
+
 # add_subdirectory(spine-c/spine-c-unit-tests)
 # add_subdirectory(spine-c/spine-c-unit-tests)
 add_subdirectory(spine-cpp/spine-cpp-unit-tests)
 add_subdirectory(spine-cpp/spine-cpp-unit-tests)

+ 32 - 0
spine-sdl/CMakeLists.txt

@@ -0,0 +1,32 @@
+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()
+
+include(FetchContent)
+FetchContent_Declare(SDL GIT_REPOSITORY https://github.com/libsdl-org/SDL GIT_TAG release-2.0.22)
+FetchContent_MakeAvailable(SDL)
+
+include_directories(src)
+
+add_library(spine-sdl-c STATIC src/spine-sdl-c.c src/spine-sdl-c.h)
+target_link_libraries(spine-sdl-c LINK_PUBLIC spine-c)
+install(TARGETS spine-sdl-c DESTINATION dist/lib)
+install(FILES src/spine-sdl-c.h DESTINATION dist/include)
+
+add_library(spine-sdl-cpp STATIC src/spine-sdl-cpp.cpp src/spine-sdl-cpp.h)
+target_link_libraries(spine-sdl-cpp LINK_PUBLIC spine-cpp)
+install(TARGETS spine-sdl-cpp DESTINATION dist/lib)
+install(FILES src/spine-sdl-cpp.h DESTINATION dist/include)
+
+add_executable(spine-sdl-c-example example/main.c)
+target_link_libraries(spine-sdl-c-example SDL2 spine-sdl-c)
+
+add_executable(spine-sdl-cpp-example example/main.cpp)
+target_link_libraries(spine-sdl-cpp-example SDL2 spine-sdl-cpp)

+ 3 - 0
spine-sdl/example/main.c

@@ -0,0 +1,3 @@
+int main() {
+    return 0;
+}

+ 22 - 0
spine-sdl/example/main.cpp

@@ -0,0 +1,22 @@
+#include <SDL.h>
+#include <spine-sdl-cpp.h>
+
+int main() {
+    SDL_Window *window = nullptr;
+    SDL_Surface *surface = nullptr;
+
+    if (SDL_Init(SDL_INIT_VIDEO)) {
+        printf("Error: %s", SDL_GetError());
+        return -1;
+    }
+    window = SDL_CreateWindow("Spine SDL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
+    if (!window) {
+        printf("Error: %s", SDL_GetError());
+        return -1;
+    }
+
+
+
+    SDL_Quit();
+    return 0;
+}

+ 0 - 0
spine-sdl/src/spine-sdl-c.c


+ 0 - 0
spine-sdl/src/spine-sdl-c.h


+ 0 - 0
spine-sdl/src/spine-sdl-cpp.cpp


+ 0 - 0
spine-sdl/src/spine-sdl-cpp.h