From 3a33f2c33822a3f266064b2e483ab79b5675bd5c Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 22 Jan 2004 09:56:24 -0500 Subject: [PATCH] ENH: Adding test for jumping over and building a missing library. --- Tests/Jump/CMakeLists.txt | 4 ++++ Tests/Jump/Executable/CMakeLists.txt | 2 ++ Tests/Jump/Executable/jumpExecutable.cxx | 12 ++++++++++++ Tests/Jump/Library/CMakeLists.txt | 21 +++++++++++++++++++++ Tests/Jump/Library/jumpShared.cxx | 7 +++++++ Tests/Jump/Library/jumpStatic.cxx | 1 + 6 files changed, 47 insertions(+) create mode 100644 Tests/Jump/CMakeLists.txt create mode 100644 Tests/Jump/Executable/CMakeLists.txt create mode 100644 Tests/Jump/Executable/jumpExecutable.cxx create mode 100644 Tests/Jump/Library/CMakeLists.txt create mode 100644 Tests/Jump/Library/jumpShared.cxx create mode 100644 Tests/Jump/Library/jumpStatic.cxx diff --git a/Tests/Jump/CMakeLists.txt b/Tests/Jump/CMakeLists.txt new file mode 100644 index 000000000..3a506aa48 --- /dev/null +++ b/Tests/Jump/CMakeLists.txt @@ -0,0 +1,4 @@ +PROJECT(Jump) + +SET(CMAKE_IGNORE_DEPENDENCIES_ORDERING 1) +SUBDIRS(Executable Library) diff --git a/Tests/Jump/Executable/CMakeLists.txt b/Tests/Jump/Executable/CMakeLists.txt new file mode 100644 index 000000000..032c2122d --- /dev/null +++ b/Tests/Jump/Executable/CMakeLists.txt @@ -0,0 +1,2 @@ +ADD_EXECUTABLE(jumpExecutable jumpExecutable.cxx) +TARGET_LINK_LIBRARIES(jumpExecutable jumpStatic jumpShared) diff --git a/Tests/Jump/Executable/jumpExecutable.cxx b/Tests/Jump/Executable/jumpExecutable.cxx new file mode 100644 index 000000000..7a050c702 --- /dev/null +++ b/Tests/Jump/Executable/jumpExecutable.cxx @@ -0,0 +1,12 @@ +#ifdef _WIN32 +# define JUMP_IMPORT __declspec(dllimport) +#else +# define JUMP_IMPORT extern +#endif + +extern int jumpStatic(); +JUMP_IMPORT int jumpShared(); +int main() +{ + return jumpShared() && jumpShared(); +} diff --git a/Tests/Jump/Library/CMakeLists.txt b/Tests/Jump/Library/CMakeLists.txt new file mode 100644 index 000000000..31398007f --- /dev/null +++ b/Tests/Jump/Library/CMakeLists.txt @@ -0,0 +1,21 @@ +ADD_LIBRARY(jumpStatic STATIC jumpStatic.cxx) +ADD_LIBRARY(jumpShared SHARED jumpShared.cxx) + +IF(WIN32) + SET(LIB_NAME + ${CMAKE_SHARED_LIBRARY_PREFIX}jumpStatic${CMAKE_SHARED_LIBRARY_SUFFIX}) + SET(EXE_DIR ${Jump_BINARY_DIR}/Executable) + IF(EXECUTABLE_OUTPUT_PATH) + SET(EXE_DIR ${EXECUTABLE_OUTPUT_PATH}) + ENDIF(EXECUTABLE_OUTPUT_PATH) + SET(LIB_DIR ${Jump_BINARY_DIR}/Library) + IF(LIBRARY_OUTPUT_PATH) + SET(LIB_DIR ${LIBRARY_OUTPUT_PATH}) + ENDIF(LIBRARY_OUTPUT_PATH) + ADD_CUSTOM_COMMAND(TARGET target + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy + ${LIB_DIR}/${CMAKE_CFG_INTDIR}/${LIB_NAME} + ${EXE_DIR}/${CMAKE_CFG_INTDIR}/${LIB_NAME} +ENDIF(WIN32) diff --git a/Tests/Jump/Library/jumpShared.cxx b/Tests/Jump/Library/jumpShared.cxx new file mode 100644 index 000000000..f500058cc --- /dev/null +++ b/Tests/Jump/Library/jumpShared.cxx @@ -0,0 +1,7 @@ +#ifdef _WIN32 +# define JUMP_EXPORT __declspec(dllexport) +#else +# define JUMP_EXPORT +#endif + +JUMP_EXPORT int jumpShared() { return 0; } diff --git a/Tests/Jump/Library/jumpStatic.cxx b/Tests/Jump/Library/jumpStatic.cxx new file mode 100644 index 000000000..1f92eb998 --- /dev/null +++ b/Tests/Jump/Library/jumpStatic.cxx @@ -0,0 +1 @@ +int jumpStatic() { return 0; }