ENH: Updated ExportImport test to try LINK_INTERFACE_LIBRARIES.
This commit is contained in:
parent
7902bc06aa
commit
109b5fc7a2
|
@ -11,15 +11,20 @@ set_property(
|
|||
PROPERTY SYMBOLIC 1
|
||||
)
|
||||
|
||||
# Build and install the exporter.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(Export_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
||||
set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(Export_CONFIG_TYPE)
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
|
||||
else(CMAKE_BUILD_TYPE)
|
||||
set(NESTED_CONFIG_TYPE)
|
||||
endif(CMAKE_BUILD_TYPE)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Build and install the exporter.
|
||||
add_custom_command(
|
||||
OUTPUT ${ExportImport_BINARY_DIR}/ExportProject
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} ${Export_CONFIG_TYPE}
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
|
||||
--build-and-test
|
||||
${ExportImport_SOURCE_DIR}/Export
|
||||
${ExportImport_BINARY_DIR}/Export
|
||||
|
@ -45,14 +50,9 @@ set_property(
|
|||
)
|
||||
|
||||
# Build and install the importer.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(Import_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(Import_CONFIG_TYPE)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
add_custom_command(
|
||||
OUTPUT ${ExportImport_BINARY_DIR}/ImportProject
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} ${Import_CONFIG_TYPE}
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
|
||||
--build-and-test
|
||||
${ExportImport_SOURCE_DIR}/Import
|
||||
${ExportImport_BINARY_DIR}/Import
|
||||
|
|
|
@ -9,14 +9,22 @@ add_library(testExe1lib STATIC testExe1lib.c) # not exported
|
|||
add_executable(testExe1 testExe1.c)
|
||||
target_link_libraries(testExe1 testExe1lib)
|
||||
|
||||
add_library(testExe2libImp SHARED testExe2libImp.c)
|
||||
add_library(testExe2lib SHARED testExe2lib.c)
|
||||
target_link_libraries(testExe2lib testExe2libImp)
|
||||
set_property(TARGET testExe2lib PROPERTY LINK_INTERFACE_LIBRARIES "")
|
||||
add_executable(testExe2 testExe2.c)
|
||||
set_property(TARGET testExe2 PROPERTY ENABLE_EXPORTS 1)
|
||||
set_property(TARGET testExe2 PROPERTY LINK_INTERFACE_LIBRARIES testExe2lib)
|
||||
|
||||
add_library(testLib1 STATIC testLib1.c)
|
||||
add_library(testLib2 STATIC testLib2.c)
|
||||
target_link_libraries(testLib2 testLib1)
|
||||
|
||||
add_library(testLib3Imp SHARED testLib3Imp.c)
|
||||
add_library(testLib3 SHARED testLib3.c)
|
||||
target_link_libraries(testLib3 testLib3Imp)
|
||||
set_property(TARGET testLib3 PROPERTY LINK_INTERFACE_LIBRARIES "")
|
||||
|
||||
add_library(testLib4 SHARED testLib4.c)
|
||||
set_property(TARGET testLib4 PROPERTY FRAMEWORK 1)
|
||||
|
@ -24,9 +32,18 @@ set_property(TARGET testLib4 PROPERTY FRAMEWORK 1)
|
|||
add_executable(testExe3 testExe3.c)
|
||||
set_property(TARGET testExe3 PROPERTY MACOSX_BUNDLE 1)
|
||||
|
||||
# Install helper targets that are not part of the interface.
|
||||
install(
|
||||
TARGETS testExe2libImp testLib3Imp
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
)
|
||||
|
||||
# Install and export from install tree.
|
||||
install(
|
||||
TARGETS testExe1 testLib1 testLib2 testExe2 testLib3 testLib4 testExe3
|
||||
testExe2lib
|
||||
EXPORT exp
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
|
@ -37,11 +54,11 @@ install(
|
|||
install(EXPORT exp NAMESPACE exp_ DESTINATION lib/exp)
|
||||
|
||||
# Export from build tree.
|
||||
export(TARGETS testExe1 testLib1 testLib2
|
||||
export(TARGETS testExe1 testLib1 testLib2 testLib3
|
||||
NAMESPACE bld_
|
||||
FILE ExportBuildTree.cmake
|
||||
)
|
||||
export(TARGETS testExe2 testLib3 testLib4 testExe3
|
||||
export(TARGETS testExe2 testLib4 testExe3 testExe2lib
|
||||
NAMESPACE bld_
|
||||
APPEND FILE ExportBuildTree.cmake
|
||||
)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# define testExe2lib_EXPORT __declspec(dllexport)
|
||||
# define testExe2libImp_IMPORT __declspec(dllimport)
|
||||
#else
|
||||
# define testExe2lib_EXPORT
|
||||
# define testExe2libImp_IMPORT
|
||||
#endif
|
||||
|
||||
testExe2libImp_IMPORT int testExe2libImp(void);
|
||||
testExe2lib_EXPORT int testExe2lib(void) { return testExe2libImp(); }
|
|
@ -0,0 +1,7 @@
|
|||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# define testExe2libImp_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
# define testExe2libImp_EXPORT
|
||||
#endif
|
||||
|
||||
testExe2libImp_EXPORT int testExe2libImp(void) { return 0; }
|
|
@ -1,7 +1,10 @@
|
|||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# define testLib3_EXPORT __declspec(dllexport)
|
||||
# define testLib3Imp_IMPORT __declspec(dllimport)
|
||||
#else
|
||||
# define testLib3_EXPORT
|
||||
# define testLib3Imp_IMPORT
|
||||
#endif
|
||||
|
||||
testLib3_EXPORT int testLib3(void) { return 0; }
|
||||
testLib3Imp_IMPORT int testLib3Imp(void);
|
||||
testLib3_EXPORT int testLib3(void) { return testLib3Imp(); }
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# define testLib3Imp_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
# define testLib3Imp_EXPORT
|
||||
#endif
|
||||
|
||||
testLib3Imp_EXPORT int testLib3Imp(void) { return 0; }
|
|
@ -5,8 +5,9 @@
|
|||
#endif
|
||||
|
||||
testExe2_IMPORT int testExe2Func(void);
|
||||
testExe2_IMPORT int testExe2lib(void);
|
||||
|
||||
int imp_mod1()
|
||||
{
|
||||
return testExe2Func();
|
||||
return testExe2Func() + testExe2lib();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue