diff --git a/meson.build b/meson.build index 58ea4e3..f1beaac 100644 --- a/meson.build +++ b/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 ] ) diff --git a/src/main.c b/src/main.c index 02df20b..9b074b0 100644 --- a/src/main.c +++ b/src/main.c @@ -1,3 +1,5 @@ +#ifdef _WIN32 + #include #include #include @@ -107,3 +109,16 @@ int main() { return 0; } + +#endif // _WIN32 + +#ifdef __linux__ + +#include + +int main() { + printf("Hello linux\n"); + return 0; +} + +#endif // __linux__ diff --git a/src/pltf/linux/gl_funcs.c b/src/pltf/linux/gl_funcs.c new file mode 100644 index 0000000..84266bc --- /dev/null +++ b/src/pltf/linux/gl_funcs.c @@ -0,0 +1,13 @@ +#ifdef __linux__ + +#include + +#include "../gl_funcs.h" + +#define X(type, name) \ +type name = NULL + +PLTF_GL_FUNCS(X) +#undef X + +#endif // __linux__ diff --git a/src/pltf/win32/gl_funcs.c b/src/pltf/win32/gl_funcs.c index 6d3af0e..0154845 100644 --- a/src/pltf/win32/gl_funcs.c +++ b/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 diff --git a/src/pltf/win32/internal.c b/src/pltf/win32/internal.c index 1850f77..c45c25c 100644 --- a/src/pltf/win32/internal.c +++ b/src/pltf/win32/internal.c @@ -1,3 +1,5 @@ +#ifdef _WIN32 + #include #include "internal.h" @@ -43,3 +45,5 @@ unsigned int vk_to_pltf_key(WPARAM key) { return PLTF_KEY_NONE; } } + +#endif // _WIN32 diff --git a/src/pltf/win32/pltf.c b/src/pltf/win32/pltf.c index 6523074..eeb2970 100644 --- a/src/pltf/win32/pltf.c +++ b/src/pltf/win32/pltf.c @@ -1,3 +1,5 @@ +#ifdef _WIN32 + #include #include #include @@ -285,3 +287,5 @@ void pltf_key_callback_set( } #undef PLTF_KEYS_X + +#endif // _WIN32 diff --git a/src/pltf/win32/win_proc.c b/src/pltf/win32/win_proc.c index 8d1d804..5d16f58 100644 --- a/src/pltf/win32/win_proc.c +++ b/src/pltf/win32/win_proc.c @@ -1,3 +1,5 @@ +#ifdef _WIN32 + #include #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 diff --git a/src/shader.c b/src/shader.c index a705d6e..723f6eb 100644 --- a/src/shader.c +++ b/src/shader.c @@ -1,3 +1,6 @@ +// Disabling on linux until opengl function +// #ifdef _WIN32 + #include #include #include @@ -86,3 +89,5 @@ unsigned int shader_create( return shader_program; } + +// #endif // _WIN32 diff --git a/tests/main.c b/tests/main.c index 7a2584b..8c5c094 100644 --- a/tests/main.c +++ b/tests/main.c @@ -1,7 +1,7 @@ #include #include -#include "cmocka/cmocka.h" +#include "cmocka.h" #include "DynString.h" void test_DynString_alloc(void** state) { diff --git a/vendor/cmocka/cmocka.h b/vendor/cmocka-2.0.2/cmocka.h similarity index 100% rename from vendor/cmocka/cmocka.h rename to vendor/cmocka-2.0.2/cmocka.h diff --git a/vendor/cmocka-2.0.2/linux/libcmocka.a b/vendor/cmocka-2.0.2/linux/libcmocka.a new file mode 100644 index 0000000..242c3a9 Binary files /dev/null and b/vendor/cmocka-2.0.2/linux/libcmocka.a differ diff --git a/vendor/cmocka/libcmocka.a b/vendor/cmocka-2.0.2/win/libcmocka.a similarity index 100% rename from vendor/cmocka/libcmocka.a rename to vendor/cmocka-2.0.2/win/libcmocka.a