postgres.git / summary / log / commit / refs
commit 793a5bebebbedd925311ba95cb77e3fb9b704200
Author: Andres Freund <andres@anarazel.de>
Date: Sat Jul 20 20:51:09 2024 +0000
First released in: 18.0, 16.4, 17.0
meson: Add support for detecting ossp-uuid without pkg-config
This is necessary as ossp-uuid on windows installs neither a pkg-config nor a
cmake dependency information. Nor is there another supported uuid
implementation available on windows.
Reported-by: Dave Page <dpage@pgadmin.org>
Reviewed-by: Tristan Partin <tristan@partin.io>
Discussion: https://postgr.es/m/20240709065101.xhc74r3mdg2lmn4w@awork3.anarazel.de
Backpatch: 16-, where meson support was added
meson.build | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index a7bdf1cfc33..b5978ef6a76 100644
--- a/meson.build
+++ b/meson.build
@@ -1393,9 +1393,26 @@ if uuidopt != 'none'
uuidfunc = 'uuid_to_string'
uuidheader = 'uuid.h'
elif uuidopt == 'ossp'
- uuid = dependency('ossp-uuid', required: true)
+ uuid = dependency('ossp-uuid', required: false)
uuidfunc = 'uuid_export'
uuidheader = 'uuid.h'
+
+ # Hardcoded lookup for ossp-uuid. This is necessary as ossp-uuid on
+ # windows installs neither a pkg-config nor a cmake dependency
+ # information. Nor is there another supported uuid implementation
+ # available on windows.
+ #
+ # Sometimes the ossp-uuid library is named 'uuid' sometimes 'ossp-uuid'
+ if not uuid.found()
+ uuid = cc.find_library('ossp-uuid',
+ required: false, dirs: test_lib_d,
+ has_headers: uuidheader, header_include_directories: postgres_inc)
+ endif
+ if not uuid.found()
+ uuid = cc.find_library('uuid',
+ required: true, dirs: test_lib_d,
+ has_headers: uuidheader, header_include_directories: postgres_inc)
+ endif
else
error('unknown uuid build option value: @0@'.format(uuidopt))
endif
[parent: 2b4593379b81]