summaryrefslogtreecommitdiffstats
path: root/Tests/ISPC/DynamicLibrary/main.cxx
diff options
context:
space:
mode:
authorRobert Maynard <robert.maynard@kitware.com>2020-09-10 17:21:07 (GMT)
committerBrad King <brad.king@kitware.com>2020-09-10 20:15:55 (GMT)
commit8de145cae18a8c368ffce60c511d6f6424c55aa2 (patch)
tree8dc8edb70a2e53e7f1096f28e8fcbe66e7cd2ce9 /Tests/ISPC/DynamicLibrary/main.cxx
parenta83521e082f11fd08027e0f440408914bd83a5eb (diff)
downloadCMake-8de145cae18a8c368ffce60c511d6f6424c55aa2.zip
CMake-8de145cae18a8c368ffce60c511d6f6424c55aa2.tar.gz
CMake-8de145cae18a8c368ffce60c511d6f6424c55aa2.tar.bz2
ISPC: DynamicLibrary test now passes on windows.
The MSVC linker needs to know what MSVC runtime a shared library needs. ISPC objects don't have a '/DIRECTIVE' entry for the MSVC runtime as they have no dependency on it. Therefore we need to add a C or C++ source to each shared library so the MSVC linker knows what runtime to embed
Diffstat (limited to 'Tests/ISPC/DynamicLibrary/main.cxx')
-rw-r--r--Tests/ISPC/DynamicLibrary/main.cxx22
1 files changed, 12 insertions, 10 deletions
diff --git a/Tests/ISPC/DynamicLibrary/main.cxx b/Tests/ISPC/DynamicLibrary/main.cxx
index 4f1c9be..f9072c7 100644
--- a/Tests/ISPC/DynamicLibrary/main.cxx
+++ b/Tests/ISPC/DynamicLibrary/main.cxx
@@ -1,15 +1,17 @@
-#include <stdio.h>
-#include "simple.ispc.h"
-int main()
-{
- float vin[16], vout[16];
- for (int i = 0; i < 16; ++i)
- vin[i] = i;
+#ifdef _WIN32
+# define IMPORT __declspec(dllimport)
+#else
+# define IMPORT
+#endif
- ispc::simple(vin, vout, 16);
+IMPORT int simple();
+int extra();
- for (int i = 0; i < 16; ++i)
- printf("%d: simple(%f) = %f\n", i, vin[i], vout[i]);
+int main()
+{
+ extra();
+ simple();
+ return 0;
}