summaryrefslogtreecommitdiff
path: root/Modules/CheckPrototypeDefinition.c.in
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2011-02-10 19:28:04 +0100
committerBrad King <brad.king@kitware.com>2011-03-18 14:03:35 -0400
commit4f252abea5f1d17c60f6ff115c9c44cc0b6f1df6 (patch)
treecd67d837e0e6e60b9e46fdb26055329f2ae588bd /Modules/CheckPrototypeDefinition.c.in
parent96453cea6ae9d41e83d8148539acc614e6316abd (diff)
downloadcmake-4f252abea5f1d17c60f6ff115c9c44cc0b6f1df6.tar.gz
Modules: Added CheckPrototypeDefinition module.
This check if the function exists and the prototype we want to use is correct. There are still functions which have different prototypes on different UNIX systems.
Diffstat (limited to 'Modules/CheckPrototypeDefinition.c.in')
-rw-r--r--Modules/CheckPrototypeDefinition.c.in29
1 files changed, 29 insertions, 0 deletions
diff --git a/Modules/CheckPrototypeDefinition.c.in b/Modules/CheckPrototypeDefinition.c.in
new file mode 100644
index 0000000000..a97344ac3e
--- /dev/null
+++ b/Modules/CheckPrototypeDefinition.c.in
@@ -0,0 +1,29 @@
+@CHECK_PROTOTYPE_DEFINITION_HEADER@
+
+static void cmakeRequireSymbol(int dummy, ...) {
+ (void) dummy;
+}
+
+static void checkSymbol(void) {
+#ifndef @CHECK_PROTOTYPE_DEFINITION_SYMBOL@
+ cmakeRequireSymbol(0, &@CHECK_PROTOTYPE_DEFINITION_SYMBOL@);
+#endif
+}
+
+@CHECK_PROTOTYPE_DEFINITION_PROTO@ {
+ return @CHECK_PROTOTYPE_DEFINITION_RETURN@;
+}
+
+#ifdef __CLASSIC_C__
+int main() {
+ int ac;
+ char*av[];
+#else
+int main(int ac, char *av[]) {
+#endif
+ checkSymbol();
+ if (ac > 1000) {
+ return *av[0];
+ }
+ return 0;
+}