summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/AutoExportDll
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-07-20 11:26:55 -0400
committerBrad King <brad.king@kitware.com>2016-07-21 11:05:22 -0400
commit13a6ff31becea16d567b23abc68bfa8aa75365ce (patch)
treec7a0005b500f8f0c52c49008bc7e272821cd170b /Tests/RunCMake/AutoExportDll
parentdf14a98e9c4af316cd5e75d6af8cc7b75da2db8f (diff)
downloadcmake-13a6ff31becea16d567b23abc68bfa8aa75365ce.tar.gz
VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries
Teach Visual Studio generators to include object files from object libraries in the list of objects whose symbols are to be exported. The Makefile and Ninja generators already did this. Update the test to cover this case. Reported-by: Bertrand Bellenot <Bertrand.Bellenot@cern.ch>
Diffstat (limited to 'Tests/RunCMake/AutoExportDll')
-rw-r--r--Tests/RunCMake/AutoExportDll/AutoExport.cmake4
-rw-r--r--Tests/RunCMake/AutoExportDll/objlib.c4
-rw-r--r--Tests/RunCMake/AutoExportDll/say.cxx2
3 files changed, 9 insertions, 1 deletions
diff --git a/Tests/RunCMake/AutoExportDll/AutoExport.cmake b/Tests/RunCMake/AutoExportDll/AutoExport.cmake
index bdddb386fa..d37e8966ff 100644
--- a/Tests/RunCMake/AutoExportDll/AutoExport.cmake
+++ b/Tests/RunCMake/AutoExportDll/AutoExport.cmake
@@ -2,7 +2,9 @@ project(autoexport)
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_library(objlib OBJECT objlib.c)
+set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
+add_library(autoexport SHARED hello.cxx world.cxx foo.c $<TARGET_OBJECTS:objlib>)
add_executable(say say.cxx)
if(MSVC)
diff --git a/Tests/RunCMake/AutoExportDll/objlib.c b/Tests/RunCMake/AutoExportDll/objlib.c
new file mode 100644
index 0000000000..54a9658d41
--- /dev/null
+++ b/Tests/RunCMake/AutoExportDll/objlib.c
@@ -0,0 +1,4 @@
+int objlib()
+{
+ return 7;
+}
diff --git a/Tests/RunCMake/AutoExportDll/say.cxx b/Tests/RunCMake/AutoExportDll/say.cxx
index 9ca8d31982..e966b1fddc 100644
--- a/Tests/RunCMake/AutoExportDll/say.cxx
+++ b/Tests/RunCMake/AutoExportDll/say.cxx
@@ -11,6 +11,7 @@ extern "C" {
int WINAPI foo();
// test regular C
int bar();
+int objlib();
}
// test c++ functions
@@ -39,6 +40,7 @@ int main()
foo();
printf("\n");
bar();
+ objlib();
printf("\n");
return 0;
}