소스 검색

add 'no-sokol-app' compilation tests for sokol-imgui and sokol-nuklear

Andre Weissflog 10 달 전
부모
커밋
0283c51145
4개의 변경된 파일60개의 추가작업 그리고 1개의 파일을 삭제
  1. 7 1
      tests/compile/CMakeLists.txt
  2. 19 0
      tests/compile/sokol_imgui_nosokolapp.c
  3. 14 0
      tests/compile/sokol_imgui_nosokolapp.cc
  4. 20 0
      tests/compile/sokol_nuklear_nosokolapp.c

+ 7 - 1
tests/compile/CMakeLists.txt

@@ -44,15 +44,21 @@ endif()
 if (ANDROID)
 if (ANDROID)
     add_library(sokol-compiletest-c SHARED ${c_sources})
     add_library(sokol-compiletest-c SHARED ${c_sources})
 else()
 else()
-    add_executable(sokol-compiletest-c ${exe_type} sokol_app.c sokol_glue.c ${c_sources})
+    add_executable(sokol-compiletest-c ${exe_type} ${c_sources})
+    add_executable(sokol-compiletest-nosokolapp-c ${exe_type} sokol_gfx.c sokol_imgui_nosokolapp.c sokol_nuklear_nosokolapp.c)
 endif()
 endif()
 target_link_libraries(sokol-compiletest-c PUBLIC cimgui nuklear spine)
 target_link_libraries(sokol-compiletest-c PUBLIC cimgui nuklear spine)
+target_link_libraries(sokol-compiletest-nosokolapp-c PUBLIC cimgui nuklear)
 configure_c(sokol-compiletest-c)
 configure_c(sokol-compiletest-c)
+configure_c(sokol-compiletest-nosokolapp-c)
 
 
 if (ANDROID)
 if (ANDROID)
     add_library(sokol-compiletest-cxx SHARED ${cxx_sources})
     add_library(sokol-compiletest-cxx SHARED ${cxx_sources})
 else()
 else()
     add_executable(sokol-compiletest-cxx ${exe_type} ${cxx_sources})
     add_executable(sokol-compiletest-cxx ${exe_type} ${cxx_sources})
+    add_executable(sokol-compiletest-nosokolapp-cxx ${exe_type} sokol_gfx.cc sokol_imgui_nosokolapp.cc)
 endif()
 endif()
 target_link_libraries(sokol-compiletest-cxx PUBLIC imgui nuklear spine)
 target_link_libraries(sokol-compiletest-cxx PUBLIC imgui nuklear spine)
+target_link_libraries(sokol-compiletest-nosokolapp-cxx PUBLIC imgui)
 configure_cxx(sokol-compiletest-cxx)
 configure_cxx(sokol-compiletest-cxx)
+configure_cxx(sokol-compiletest-nosokolapp-cxx)

+ 19 - 0
tests/compile/sokol_imgui_nosokolapp.c

@@ -0,0 +1,19 @@
+#include "sokol_app.h"
+#include "sokol_gfx.h"
+#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
+#if defined(_MSC_VER )
+#pragma warning(disable:4201) // nonstandard extension used: nameless struct/union
+#pragma warning(disable:4214) // nonstandard extension used: bit field types other than int
+#endif
+#include "cimgui/cimgui.h"
+#define SOKOL_IMPL
+#define SOKOL_IMGUI_NO_SOKOL_APP
+#include "sokol_imgui.h"
+
+void use_imgui_impl(void) {
+    simgui_setup(&(simgui_desc_t){0});
+}
+
+int main(void) {
+    return 0;
+}

+ 14 - 0
tests/compile/sokol_imgui_nosokolapp.cc

@@ -0,0 +1,14 @@
+#include "sokol_app.h"
+#include "sokol_gfx.h"
+#include "imgui.h"
+#define SOKOL_IMPL
+#define SOKOL_IMGUI_NO_SOKOL_APP
+#include "sokol_imgui.h"
+
+void use_imgui_impl() {
+    simgui_setup({});
+}
+
+int main() {
+    return 0;
+}

+ 20 - 0
tests/compile/sokol_nuklear_nosokolapp.c

@@ -0,0 +1,20 @@
+#include "sokol_app.h"
+#include "sokol_gfx.h"
+
+// include nuklear.h before the sokol_nuklear.h implementation
+#define NK_INCLUDE_FIXED_TYPES
+#define NK_INCLUDE_STANDARD_IO
+#define NK_INCLUDE_DEFAULT_ALLOCATOR
+#define NK_INCLUDE_VERTEX_BUFFER_OUTPUT
+#define NK_INCLUDE_FONT_BAKING
+#define NK_INCLUDE_DEFAULT_FONT
+#define NK_INCLUDE_STANDARD_VARARGS
+#include "nuklear.h"
+
+#define SOKOL_IMPL
+#define SOKOL_NUKLEAR_NO_SOKOL_APP
+#include "sokol_nuklear.h"
+
+void use_nuklear_impl(void) {
+    snk_setup(&(snk_desc_t){0});
+}