summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/AutoExportDll
diff options
context:
space:
mode:
authorYury Zhuravlev <stalkerg@gmail.com>2016-07-10 17:24:43 (GMT)
committerBrad King <brad.king@kitware.com>2016-07-11 13:41:04 (GMT)
commit9da725cb00d25c7d3f45e8ee8c943ec5241d6227 (patch)
treed8ac9317dc0b460557c119180fdd04d4bff0da55 /Tests/RunCMake/AutoExportDll
parent2005b960672d2d552585805ea398b02400a576b7 (diff)
downloadCMake-9da725cb00d25c7d3f45e8ee8c943ec5241d6227.zip
CMake-9da725cb00d25c7d3f45e8ee8c943ec5241d6227.tar.gz
CMake-9da725cb00d25c7d3f45e8ee8c943ec5241d6227.tar.bz2
Windows: Honor WINDOWS_EXPORT_ALL_SYMBOLS for executables with exports
For executables with ENABLE_EXPORTS set, export all symbols when instructed to do so by WINDOWS_EXPORT_ALL_SYMBOLS.
Diffstat (limited to 'Tests/RunCMake/AutoExportDll')
-rw-r--r--Tests/RunCMake/AutoExportDll/AutoExport.cmake6
-rw-r--r--Tests/RunCMake/AutoExportDll/hello2.c8
-rw-r--r--Tests/RunCMake/AutoExportDll/say.cxx8
3 files changed, 22 insertions, 0 deletions
diff --git a/Tests/RunCMake/AutoExportDll/AutoExport.cmake b/Tests/RunCMake/AutoExportDll/AutoExport.cmake
index 3b2b2c5..bdddb38 100644
--- a/Tests/RunCMake/AutoExportDll/AutoExport.cmake
+++ b/Tests/RunCMake/AutoExportDll/AutoExport.cmake
@@ -3,5 +3,11 @@ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${autoexport_BINARY_DIR}/bin)
add_subdirectory(sub)
add_library(autoexport SHARED hello.cxx world.cxx foo.c)
+
add_executable(say say.cxx)
+if(MSVC)
+ set_target_properties(say PROPERTIES ENABLE_EXPORTS ON)
+ add_library(autoexport_for_exec SHARED hello2.c)
+ target_link_libraries(autoexport_for_exec say)
+endif()
target_link_libraries(say autoexport autoexport2)
diff --git a/Tests/RunCMake/AutoExportDll/hello2.c b/Tests/RunCMake/AutoExportDll/hello2.c
new file mode 100644
index 0000000..d4d6b72
--- /dev/null
+++ b/Tests/RunCMake/AutoExportDll/hello2.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+extern int own_auto_export_function(int i);
+
+void hello2()
+{
+ printf("hello exec:%i", own_auto_export_function(41));
+}
diff --git a/Tests/RunCMake/AutoExportDll/say.cxx b/Tests/RunCMake/AutoExportDll/say.cxx
index 0178688..9ca8d31 100644
--- a/Tests/RunCMake/AutoExportDll/say.cxx
+++ b/Tests/RunCMake/AutoExportDll/say.cxx
@@ -18,6 +18,14 @@ int bar();
void hello();
void world();
+// test exports for executable target
+extern "C" {
+int own_auto_export_function(int i)
+{
+ return i + 1;
+}
+}
+
int main()
{
// test static data (needs declspec to work)