The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
#include <zlib.h> |
|
#include <stdbool.h> |
|
#include <stdio.h> |
|
#include <string.h> |
|
|
|
static bool check_version(const char *zlib_ver, const char *found_zlib) { |
|
if (zlib_ver == found_zlib) |
|
return true; |
|
|
|
if (strcmp(zlib_ver, found_zlib) == 0) |
|
return true; |
|
|
|
#ifdef ZLIBNG_VERSION |
|
const char *ptr = strstr(zlib_ver, found_zlib); |
|
|
|
// If the needle isn't found or the needle isn't at the start, fail. |
|
if (ptr == NULL || ptr != zlib_ver) |
|
return false; |
|
|
|
/* In zlib-ng, ZLIB_VERSION is of the form X.Y.Z.zlib-ng. This will move the |
|
* pointer to the start of the suffix, .zlib-ng. We know that at this point |
|
* that FOUND_ZLIB is the start of ZLIB_VERSION, so compare the rest. |
|
*/ |
|
ptr += strlen(found_zlib); |
|
if (strcmp(ptr, ".zlib-ng") == 0) |
|
return true; |
|
#endif |
|
|
|
return false; |
|
} |
|
|
|
int main(void) { |
|
void * something = deflate; |
|
if (!check_version(ZLIB_VERSION, FOUND_ZLIB)) { |
|
printf("Meson found '%s' but zlib is '%s'\n", FOUND_ZLIB, ZLIB_VERSION); |
|
#ifdef ZLIBNG_VERSION |
|
puts("Note that in the case of zlib-ng, a version suffix of .zlib-ng is expected"); |
|
#endif |
|
return 2; |
|
} |
|
if(something != 0) |
|
return 0; |
|
printf("Couldn't find 'deflate'\n"); |
|
return 1; |
|
}
|
|
|