summaryrefslogtreecommitdiff
path: root/Tests/SetLang
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2007-02-20 09:35:21 -0500
committerBill Hoffman <bill.hoffman@kitware.com>2007-02-20 09:35:21 -0500
commit1d8e7e9411f62a60340b1edba6c55a8e7548a93b (patch)
tree932198ce265b630740c8340c0e2d0a8a723919bc /Tests/SetLang
parent5c0a340a9e0146841b14065497373cb9a79d5768 (diff)
downloadcmake-1d8e7e9411f62a60340b1edba6c55a8e7548a93b.tar.gz
BUG: fix for bug 4423 set language fixes
Diffstat (limited to 'Tests/SetLang')
-rw-r--r--Tests/SetLang/CMakeLists.txt7
-rw-r--r--Tests/SetLang/bar.c21
-rw-r--r--Tests/SetLang/foo.c7
3 files changed, 35 insertions, 0 deletions
diff --git a/Tests/SetLang/CMakeLists.txt b/Tests/SetLang/CMakeLists.txt
new file mode 100644
index 0000000000..d53b308012
--- /dev/null
+++ b/Tests/SetLang/CMakeLists.txt
@@ -0,0 +1,7 @@
+# test forcing a source file language to c++ from c
+project(SetLang)
+add_library(foo foo.c)
+add_executable(bar bar.c)
+set_source_files_properties(foo.c bar.c PROPERTIES LANGUAGE CXX)
+target_link_libraries(bar foo)
+set_target_properties(bar PROPERTIES LINKER_LANGUAGE CXX)
diff --git a/Tests/SetLang/bar.c b/Tests/SetLang/bar.c
new file mode 100644
index 0000000000..f59c318b18
--- /dev/null
+++ b/Tests/SetLang/bar.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+int foo();
+class A
+{
+public:
+ A() {this->i = foo();}
+ int i;
+};
+
+int main()
+{
+ A a;
+ if(a.i == 21)
+ {
+ printf("passed foo is 21\n");
+ return 0;
+ }
+ printf("Failed foo is not 21\n");
+ return -1;
+}
diff --git a/Tests/SetLang/foo.c b/Tests/SetLang/foo.c
new file mode 100644
index 0000000000..e7918af587
--- /dev/null
+++ b/Tests/SetLang/foo.c
@@ -0,0 +1,7 @@
+int foo()
+{
+ int r = 10;
+ r++;
+ int ret = r+10;
+ return ret;
+}