aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2024-06-10 09:25:23 -0400
committerDavid Robillard <d@drobilla.net>2024-06-10 09:31:17 -0400
commit55245b99cc4e7992f34244b773eeb510f3af8904 (patch)
treeaa00d32ab8816912bb5755bf4b6aef6219984c65
parentc46b41787cac270638ef7151782357636cf1be77 (diff)
downloadpugl-55245b99cc4e7992f34244b773eeb510f3af8904.tar.gz
pugl-55245b99cc4e7992f34244b773eeb510f3af8904.tar.bz2
pugl-55245b99cc4e7992f34244b773eeb510f3af8904.zip
Fix build and tests with optional X11 features disabledHEADmain
-rw-r--r--include/pugl/pugl.h3
-rw-r--r--meson.build13
-rw-r--r--src/x11.c2
-rw-r--r--test/meson.build34
-rw-r--r--test/test_cursor.c4
-rw-r--r--test/test_gl_hints.c3
-rw-r--r--test/test_stub_hints.c3
7 files changed, 34 insertions, 28 deletions
diff --git a/include/pugl/pugl.h b/include/pugl/pugl.h
index 2d7f4b4..ac5f51c 100644
--- a/include/pugl/pugl.h
+++ b/include/pugl/pugl.h
@@ -1573,7 +1573,8 @@ puglGetClipboard(PuglView* view, uint32_t typeIndex, size_t* len);
for example if compiled on X11 without Xcursor support.
@return #PUGL_BAD_PARAMETER if the given cursor is invalid,
- #PUGL_FAILURE if the cursor is known but loading it system fails.
+ #PUGL_UNSUPPORTED if setting the cursor is not supported on this system, or
+ another error if the cursor is known but loading it fails.
*/
PUGL_API
PuglStatus
diff --git a/meson.build b/meson.build
index e3b8450..78c6d7c 100644
--- a/meson.build
+++ b/meson.build
@@ -56,6 +56,7 @@ add_project_arguments(
core_args = []
dl_dep = cc.find_library('dl', required: false)
+with_timers = true
if host_machine.system() == 'darwin'
# MacOS
@@ -173,15 +174,12 @@ else
core_args += '-D_POSIX_C_SOURCE=200809L'
xcursor_dep = cc.find_library('Xcursor', required: get_option('xcursor'))
- if xcursor_dep.found()
- core_args += ['-DUSE_XCURSOR=1']
- endif
+ core_args += ['-DUSE_XCURSOR=@0@'.format(xcursor_dep.found().to_int())]
xrandr_dep = cc.find_library('Xrandr', required: get_option('xrandr'))
- if xrandr_dep.found()
- core_args += ['-DUSE_XRANDR=1']
- endif
+ core_args += ['-DUSE_XRANDR=@0@'.format(xrandr_dep.found().to_int())]
+ with_timers = false
use_xsync = false
xext_dep = cc.find_library('Xext', required: get_option('xsync'))
if xext_dep.found()
@@ -189,12 +187,13 @@ else
#include <X11/extensions/sync.h>
int main(void) { XSyncQueryExtension(0, 0, 0); return 0; }'''
if cc.compiles(xsync_fragment, name: 'Xsync')
- core_args += ['-DUSE_XSYNC=1']
+ with_timers = true
use_xsync = true
elif get_option('xsync') == 'enabled'
error('C header <X11/extensions/sync.h> not found')
endif
endif
+ core_args += ['-DUSE_XSYNC=@0@'.format(use_xsync.to_int())]
x11_args = []
if cc.get_id() == 'clang'
diff --git a/src/x11.c b/src/x11.c
index 4db095e..419cd54 100644
--- a/src/x11.c
+++ b/src/x11.c
@@ -2194,7 +2194,7 @@ puglSetCursor(PuglView* const view, const PuglCursor cursor)
#else
(void)view;
(void)cursor;
- return PUGL_FAILURE;
+ return PUGL_UNSUPPORTED;
#endif
}
diff --git a/test/meson.build b/test/meson.build
index f8d2fd1..791cf04 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -39,10 +39,7 @@ if not meson.is_subproject() and get_option('lint')
endif
endif
-basic_exclusive_tests = [
- 'local_copy_paste',
- 'remote_copy_paste',
-]
+basic_exclusive_tests = []
basic_tests = [
'cursor',
@@ -53,7 +50,6 @@ basic_tests = [
'strerror',
'stub',
'stub_hints',
- 'timer',
'update',
'view',
'world',
@@ -69,6 +65,11 @@ gl_tests = [
vulkan_tests = ['vulkan']
+if with_timers
+ basic_exclusive_tests += ['local_copy_paste', 'remote_copy_paste']
+ basic_tests += ['timer']
+endif
+
includes = [
'.',
'../include',
@@ -152,7 +153,7 @@ if vulkan_dep.found()
endforeach
endif
-unified_args = []
+unified_args = core_args
unified_deps = [core_deps]
if cairo_dep.found()
unified_args += ['-DWITH_CAIRO']
@@ -174,9 +175,9 @@ if host_machine.system() == 'darwin'
objcpp = meson.get_compiler('objcpp')
- objcpp_args = []
+ objcpp_unified_args = unified_args
if objcpp.get_id() == 'clang'
- objcpp_args += [
+ objcpp_unified_args += [
'-Wno-c++98-compat',
'-Wno-c++98-compat-pedantic',
'-Wno-deprecated-declarations',
@@ -184,7 +185,7 @@ if host_machine.system() == 'darwin'
]
endif
- unified_args += objcpp.get_supported_arguments(test_cpp_args + objcpp_args)
+ objcpp_unified_args = objcpp.get_supported_arguments(objcpp_unified_args)
test(
'inline_objcpp',
@@ -193,23 +194,22 @@ if host_machine.system() == 'darwin'
'test_inline_objcpp.mm',
dependencies: unified_deps,
include_directories: include_directories(includes),
- objcpp_args: unified_args,
+ objcpp_args: objcpp_unified_args,
),
suite: 'unit',
)
elif is_variable('cpp')
- unified_args = []
-
+ cpp_unified_args = unified_args
if cpp.get_id() == 'clang'
- unified_args += [
+ cpp_unified_args += [
'-Wno-old-style-cast',
'-Wno-switch-default',
'-Wno-switch-enum',
'-Wno-unused-macros', # Mac
]
elif cpp.get_id() == 'gcc'
- unified_args += [
+ cpp_unified_args += [
'-Wno-conditionally-supported',
'-Wno-old-style-cast',
'-Wno-switch-default',
@@ -217,17 +217,19 @@ elif is_variable('cpp')
'-Wno-useless-cast',
]
elif cpp.get_id() == 'msvc'
- unified_args += [
+ cpp_unified_args += [
'/wd4464', # relative include path contains '..'
]
endif
+ cpp_unified_args = cpp.get_supported_arguments(cpp_unified_args)
+
test(
'inline_cpp',
executable(
'test_inline_cpp',
'test_inline_cpp.cpp',
- cpp_args: test_cpp_args + unified_args,
+ cpp_args: cpp_unified_args,
dependencies: unified_deps,
include_directories: include_directories(includes),
),
diff --git a/test/test_cursor.c b/test/test_cursor.c
index 11a52d7..9b0fa66 100644
--- a/test/test_cursor.c
+++ b/test/test_cursor.c
@@ -63,7 +63,9 @@ main(int argc, char** argv)
// Change the cursor, updating each time
assert(puglSetCursor(test.view, (PuglCursor)-1));
for (unsigned i = 0; i < (unsigned)PUGL_CURSOR_ALL_SCROLL; ++i) {
- assert(!puglSetCursor(test.view, (PuglCursor)i));
+ const PuglStatus st = puglSetCursor(test.view, (PuglCursor)i);
+
+ assert(!st || st == PUGL_UNSUPPORTED);
assert(!puglUpdate(test.world, 0.1));
}
diff --git a/test/test_gl_hints.c b/test/test_gl_hints.c
index 16b51c5..250136a 100644
--- a/test/test_gl_hints.c
+++ b/test/test_gl_hints.c
@@ -85,7 +85,8 @@ main(void)
assert(puglGetViewHint(view, PUGL_SWAP_INTERVAL) != PUGL_DONT_CARE);
assert(puglGetViewHint(view, PUGL_RESIZABLE) != PUGL_DONT_CARE);
assert(puglGetViewHint(view, PUGL_IGNORE_KEY_REPEAT) != PUGL_DONT_CARE);
- assert(puglGetViewHint(view, PUGL_REFRESH_RATE) != PUGL_DONT_CARE);
+ assert(puglGetViewHint(view, PUGL_REFRESH_RATE) == PUGL_DONT_CARE ||
+ puglGetViewHint(view, PUGL_REFRESH_RATE) > 0);
// Tear down
puglFreeView(view);
diff --git a/test/test_stub_hints.c b/test/test_stub_hints.c
index 4c9d0c4..b7d54e3 100644
--- a/test/test_stub_hints.c
+++ b/test/test_stub_hints.c
@@ -77,7 +77,8 @@ main(void)
assert(puglGetViewHint(view, PUGL_ALPHA_BITS) != PUGL_DONT_CARE);
assert(puglGetViewHint(view, PUGL_RESIZABLE) != PUGL_DONT_CARE);
assert(puglGetViewHint(view, PUGL_IGNORE_KEY_REPEAT) != PUGL_DONT_CARE);
- assert(puglGetViewHint(view, PUGL_REFRESH_RATE) != PUGL_DONT_CARE);
+ assert(puglGetViewHint(view, PUGL_REFRESH_RATE) == PUGL_DONT_CARE ||
+ puglGetViewHint(view, PUGL_REFRESH_RATE) > 0);
// Tear down
puglFreeView(view);