summaryrefslogtreecommitdiffstats
path: root/Tests/Complex
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2002-04-08 17:36:18 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2002-04-08 17:36:18 (GMT)
commit65e3edea04fdd058719659e99a7a3da3dfb80b25 (patch)
treedb1d3a1c33d40bb43c5333399163a76df7aee689 /Tests/Complex
parent7883b6c7dc38c73638947575c75aeb06acba9c90 (diff)
downloadCMake-65e3edea04fdd058719659e99a7a3da3dfb80b25.zip
CMake-65e3edea04fdd058719659e99a7a3da3dfb80b25.tar.gz
CMake-65e3edea04fdd058719659e99a7a3da3dfb80b25.tar.bz2
ENH: use separate vars for creating c++ and c shared libraries and add a test for c libraries
Diffstat (limited to 'Tests/Complex')
-rw-r--r--Tests/Complex/Executable/CMakeLists.txt2
-rw-r--r--Tests/Complex/Executable/complex.cxx11
-rw-r--r--Tests/Complex/Library/CMakeLists.txt2
-rw-r--r--Tests/Complex/Library/testConly.c6
-rw-r--r--Tests/Complex/Library/testConly.h12
5 files changed, 32 insertions, 1 deletions
diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt
index a3ad8fd..7468926 100644
--- a/Tests/Complex/Executable/CMakeLists.txt
+++ b/Tests/Complex/Executable/CMakeLists.txt
@@ -4,7 +4,7 @@
SET_SOURCE_FILES_PROPERTIES(complex
COMPILE_FLAGS "-DFILE_HAS_EXTRA_COMPILE_FLAGS")
ADD_EXECUTABLE(complex complex)
-SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared)
+SET(COMPLEX_LIBS CMakeTestLibrary;CMakeTestLibraryShared;CMakeTestCLibraryShared)
TARGET_LINK_LIBRARIES(complex ${COMPLEX_LIBS})
#
diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx
index 61ffd8f..6607d7d 100644
--- a/Tests/Complex/Executable/complex.cxx
+++ b/Tests/Complex/Executable/complex.cxx
@@ -2,6 +2,9 @@
#include "ExtraSources/file1.h"
#include "file2.h"
#include "sharedFile.h"
+extern "C" {
+#include "testConly.h"
+}
#include "cmStandardIncludes.h"
#include "cmSystemTools.h"
@@ -103,6 +106,14 @@ int main()
{
cmPassed("Call to sharedFunction from shared library worked.");
}
+ if(CsharedFunction() != 1)
+ {
+ cmFailed("Call to C sharedFunction from shared library failed.");
+ }
+ else
+ {
+ cmPassed("Call to C sharedFunction from shared library worked.");
+ }
if(file1() != 1)
{
diff --git a/Tests/Complex/Library/CMakeLists.txt b/Tests/Complex/Library/CMakeLists.txt
index c01f501..19cb6cd 100644
--- a/Tests/Complex/Library/CMakeLists.txt
+++ b/Tests/Complex/Library/CMakeLists.txt
@@ -26,6 +26,8 @@ ADD_LIBRARY(CMakeTestLibrary LibrarySources)
SOURCE_FILES(SharedLibrarySources sharedFile)
ADD_LIBRARY(CMakeTestLibraryShared SHARED SharedLibrarySources)
+ADD_LIBRARY(CMakeTestCLibraryShared SHARED testConly.c)
+
#
# Attach a post-build custom-command to the lib.
# It runs ${CREATE_FILE_EXE} which will create a file.
diff --git a/Tests/Complex/Library/testConly.c b/Tests/Complex/Library/testConly.c
new file mode 100644
index 0000000..d2d5294
--- /dev/null
+++ b/Tests/Complex/Library/testConly.c
@@ -0,0 +1,6 @@
+#include "sharedFile.h"
+
+int CsharedFunction()
+{
+ return 1;
+}
diff --git a/Tests/Complex/Library/testConly.h b/Tests/Complex/Library/testConly.h
new file mode 100644
index 0000000..8553a6b
--- /dev/null
+++ b/Tests/Complex/Library/testConly.h
@@ -0,0 +1,12 @@
+#if defined(_WIN32) || defined(WIN32) /* Win32 version */
+#ifdef CMakeTestLibraryShared_EXPORTS
+# define CMakeTest_EXPORT __declspec(dllexport)
+#else
+# define CMakeTest_EXPORT __declspec(dllimport)
+#endif
+#else
+// unix needs nothing
+#define CMakeTest_EXPORT
+#endif
+
+CMakeTest_EXPORT int CsharedFunction();