Răsfoiți Sursa

Got things running for Linux

Aaro Saila 3 luni în urmă
părinte
comite
767eeb6b39

+ 29 - 12
meson.build

@@ -2,6 +2,9 @@ project('scuffedcraft', 'c')
 
 cc = meson.get_compiler('c')
 vendor_dir_abs = meson.current_source_dir() + '/vendor/'
+message(vendor_dir_abs)
+
+pltf_src = []
 
 cargs = [
   '-std=c99',
@@ -18,19 +21,40 @@ link_args = []
 test_link_args = [ '-static' ]
 
 include_dirs = [
-  'vendor/',
+  # 'vendor/',
   'src/'
 ]
 test_include_dirs = [
   'src/',
-  'vendor/'
+  'vendor/cmocka-2.0.2/'
 ]
 
 if host_machine.system() == 'linux'
+  pltf_src = [
+    'src/pltf/linux/gl_funcs.c'
+  ]
+
   dependencies += [
     dependency('libglvnd')
   ]
+
+  libcmocka = cc.find_library(
+    'libcmocka',
+    dirs: [ vendor_dir_abs + 'cmocka-2.0.2/linux/' ]
+  )
 elif host_machine.system() == 'windows'
+  pltf_src = [
+    'src/pltf/win32/gl_funcs.c',
+    'src/pltf/win32/internal.c',
+    'src/pltf/win32/pltf.c',
+    'src/pltf/win32/win_proc.c',
+  ]
+
+  libcmocka = cc.find_library(
+    'libcmocka',
+    dirs: [ vendor_dir_abs + 'cmocka-2.0.2/win/' ]
+  )
+
   link_args += [
     '-lopengl32'
   ]
@@ -53,21 +77,17 @@ endif
 
 executable(
   'scuffedcraft',
-  'src/pltf/win32/gl_funcs.c',
-  'src/pltf/win32/internal.c',
-  'src/pltf/win32/pltf.c',
-  'src/pltf/win32/win_proc.c',
   'src/DynArray.c',
   'src/DynString.c',
   'src/log.c',
   'src/main.c',
   'src/shader.c',
+  pltf_src,
   c_args: cargs,
   dependencies: dependencies,
   link_args: link_args,
   include_directories: include_directories(include_dirs),
-  )
-
+)
 
 executable(
   'tests',
@@ -78,9 +98,6 @@ executable(
   include_directories: include_directories(test_include_dirs),
   link_args: test_link_args,
   dependencies: [
-    cc.find_library(
-      'libcmocka',
-      dirs: [ vendor_dir_abs + 'cmocka/' ]
-    )
+    libcmocka
   ]
 )

+ 15 - 0
src/main.c

@@ -1,3 +1,5 @@
+#ifdef _WIN32
+
 #include <assert.h>
 #include <stdbool.h>
 #include <stdio.h>
@@ -107,3 +109,16 @@ int main() {
 
     return 0;
 }
+
+#endif // _WIN32
+
+#ifdef __linux__
+
+#include <stdio.h>
+
+int main() {
+    printf("Hello linux\n");
+    return 0;
+}
+
+#endif // __linux__

+ 13 - 0
src/pltf/linux/gl_funcs.c

@@ -0,0 +1,13 @@
+#ifdef __linux__
+
+#include <stddef.h>
+
+#include "../gl_funcs.h"
+
+#define X(type, name) \
+type name = NULL
+
+PLTF_GL_FUNCS(X)
+#undef X
+
+#endif // __linux__

+ 3 - 0
src/pltf/win32/gl_funcs.c

@@ -1,3 +1,5 @@
+#ifdef _WIN32
+
 #include "../gl_funcs.h"
 #include "log.h"
 #include "internal.h"
@@ -31,3 +33,4 @@ void pltf_gl_funcs_load() {
     PLTF_GL_FUNCS(X)
 }
 
+#endif // _WIN32

+ 4 - 0
src/pltf/win32/internal.c

@@ -1,3 +1,5 @@
+#ifdef _WIN32
+
 #include <windows.h>
 
 #include "internal.h"
@@ -43,3 +45,5 @@ unsigned int vk_to_pltf_key(WPARAM key) {
         return PLTF_KEY_NONE;
     }
 }
+
+#endif // _WIN32

+ 4 - 0
src/pltf/win32/pltf.c

@@ -1,3 +1,5 @@
+#ifdef _WIN32
+
 #include <GL/glcorearb.h>
 #include <GL/wglext.h>
 #include <assert.h>
@@ -285,3 +287,5 @@ void pltf_key_callback_set(
 }
 
 #undef PLTF_KEYS_X
+
+#endif // _WIN32

+ 4 - 0
src/pltf/win32/win_proc.c

@@ -1,3 +1,5 @@
+#ifdef _WIN32
+
 #include <windows.h>
 
 #include "internal.h"
@@ -68,3 +70,5 @@ LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
     }
     return DefWindowProc(hwnd, uMsg, wParam, lParam);
 }
+
+#endif // _WIN32

+ 5 - 0
src/shader.c

@@ -1,3 +1,6 @@
+// Disabling on linux until opengl function 
+// #ifdef _WIN32
+
 #include <string.h>
 #include <stdio.h>
 #include <errno.h>
@@ -86,3 +89,5 @@ unsigned int shader_create(
 
     return shader_program;
 }
+
+// #endif // _WIN32

+ 1 - 1
tests/main.c

@@ -1,7 +1,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-#include "cmocka/cmocka.h"
+#include "cmocka.h"
 #include "DynString.h"
 
 void test_DynString_alloc(void** state) {

+ 0 - 0
vendor/cmocka/cmocka.h → vendor/cmocka-2.0.2/cmocka.h


BIN
vendor/cmocka-2.0.2/linux/libcmocka.a


+ 0 - 0
vendor/cmocka/libcmocka.a → vendor/cmocka-2.0.2/win/libcmocka.a