From 0d1cde39cdef5f431bc392405ca1b2e08afb1656 Mon Sep 17 00:00:00 2001 From: Matthieu Longo Date: Fri, 21 Jul 2017 14:21:37 +0200 Subject: [PATCH] fix paths to test binaries --- examples/c/proactor/CMakeLists.txt | 7 ++++--- examples/cpp/CMakeLists.txt | 5 +++-- proton-c/CMakeLists.txt | 6 +++++- proton-c/bindings/cpp/CMakeLists.txt | 19 +++++++++++++------ proton-c/src/tests/CMakeLists.txt | 14 ++++++++++---- 5 files changed, 35 insertions(+), 16 deletions(-) diff --git a/examples/c/proactor/CMakeLists.txt b/examples/c/proactor/CMakeLists.txt index 6ea8aaff17..db3616b965 100644 --- a/examples/c/proactor/CMakeLists.txt +++ b/examples/c/proactor/CMakeLists.txt @@ -28,9 +28,9 @@ add_definitions(${COMPILE_LANGUAGE_FLAGS} ${COMPILE_WARNING_FLAGS} ${WERROR} ${C # Add a test with the correct environment to find test executables and valgrind. if(WIN32) - set(test_path "$;$") + set(test_path "${CMAKE_RUNTIME_OUTPUT_DIRECTORY};$;$") else(WIN32) - set(test_path "${CMAKE_CURRENT_BINARY_DIR}:$ENV{PATH}") + set(test_path "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:$ENV{PATH}") endif(WIN32) foreach(name broker send receive direct) @@ -41,4 +41,5 @@ endforeach() set(run_env ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/proton-c/env.py ${EXAMPLE_ENV} "PATH=${test_path}" ${VALGRIND_ENV}) -add_test(c-example-proactor ${run_env} -- ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v) +add_test(NAME c-example-proactor COMMAND ${run_env} -- ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v) + #WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt index 7da4834552..19f7e4fbce 100644 --- a/examples/cpp/CMakeLists.txt +++ b/examples/cpp/CMakeLists.txt @@ -26,12 +26,13 @@ add_definitions(${CXX_WARNING_FLAGS}) # Add a test with the correct environment to find test executables and valgrind. macro(add_cpp_test name) if(WIN32) - set(test_path "$;$;$") + set(test_path "${CMAKE_RUNTIME_OUTPUT_DIRECTORY};$;$;$") else(WIN32) - set(test_path "$:$ENV{PATH}") + set(test_path "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:$ENV{PATH}") endif(WIN32) set(run_env ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/proton-c/env.py ${EXAMPLE_ENV}) add_test(NAME ${name} COMMAND ${run_env} "PATH=${test_path}" ${VALGRIND_ENV} -- ${ARGN}) + #WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) endmacro() # Single-threaded examples that work on C++03 diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt index 054a054d2f..c26b3872e9 100644 --- a/proton-c/CMakeLists.txt +++ b/proton-c/CMakeLists.txt @@ -640,10 +640,14 @@ if (qpid-proton-proactor) ) endif() +if (NOT BIN_INSTALL_DIR) + set(BIN_INSTALL_DIR "bin") +endif(NOT BIN_INSTALL_DIR) + # Install executables and libraries install(TARGETS qpid-proton qpid-proton-core ${LIB_TARGETS} EXPORT proton - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${BIN_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR}) diff --git a/proton-c/bindings/cpp/CMakeLists.txt b/proton-c/bindings/cpp/CMakeLists.txt index d1c6fd1e11..af9e0e43f1 100644 --- a/proton-c/bindings/cpp/CMakeLists.txt +++ b/proton-c/bindings/cpp/CMakeLists.txt @@ -103,10 +103,13 @@ set_target_properties ( ) ## Install +if (NOT BIN_INSTALL_DIR) + set(BIN_INSTALL_DIR "bin") +endif(NOT BIN_INSTALL_DIR) install(TARGETS qpid-proton-cpp EXPORT proton-cpp - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${BIN_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR}) @@ -132,11 +135,11 @@ install (FILES DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) if (DEFINED CMAKE_IMPORT_LIBRARY_PREFIX) -set(PROTONCPPLIB ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_IMPORT_LIBRARY_SUFFIX}) -set(PROTONCPPLIBDEBUG ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_DEBUG_POSTFIX}${CMAKE_IMPORT_LIBRARY_SUFFIX}) + set(PROTONCPPLIB ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_IMPORT_LIBRARY_SUFFIX}) + set(PROTONCPPLIBDEBUG ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_DEBUG_POSTFIX}${CMAKE_IMPORT_LIBRARY_SUFFIX}) else () -set(PROTONCPPLIB ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_SHARED_LIBRARY_SUFFIX}) -set(PROTONCPPLIBDEBUG ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(PROTONCPPLIB ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(PROTONCPPLIBDEBUG ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}) endif () include(WriteBasicConfigVersionFile) @@ -158,6 +161,10 @@ if (ENABLE_VALGRIND AND VALGRIND_EXE) set(memcheck-cmd ${VALGRIND_EXE} --error-exitcode=42 --quiet --leak-check=full --trace-children=yes) endif () +if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +endif (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) + macro(add_cpp_test test) add_executable (${test} src/${test}.cpp) target_link_libraries (${test} qpid-proton qpid-proton-cpp) @@ -167,7 +174,7 @@ macro(add_cpp_test test) "PATH=$" $ ${ARGN}) else () - add_test (NAME cpp-${test} COMMAND ${memcheck-cmd} ${CMAKE_CURRENT_BINARY_DIR}/${test} ${ARGN}) + add_test (NAME cpp-${test} COMMAND ${memcheck-cmd} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} ${ARGN}) endif () endmacro(add_cpp_test) diff --git a/proton-c/src/tests/CMakeLists.txt b/proton-c/src/tests/CMakeLists.txt index 50ea6773b4..aa3fb31c52 100644 --- a/proton-c/src/tests/CMakeLists.txt +++ b/proton-c/src/tests/CMakeLists.txt @@ -28,6 +28,10 @@ if (ENABLE_VALGRIND AND VALGRIND_EXE) --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/valgrind.supp) endif () +if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +endif (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) + macro (pn_add_c_test test) add_executable (${test} ${ARGN}) target_link_libraries (${test} qpid-proton ${PLATFORM_LIBS}) @@ -40,7 +44,7 @@ macro (pn_add_c_test test) "PATH=$" $) else () - add_test (${test} ${memcheck-cmd} ${CMAKE_CURRENT_BINARY_DIR}/${test}) + add_test (${test} ${memcheck-cmd} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test}) endif () endmacro(pn_add_c_test) @@ -65,11 +69,13 @@ if(HAS_PROACTOR) if(WIN32) # set(path "$;$") else(WIN32) - set(path "${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_BINARY_DIR}/examples/c/proactor:$ENV{PATH}") + set(test_path "${CMAKE_CURRENT_BINARY_DIR}:$:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:$ENV{PATH}") endif(WIN32) # Add the tools directory for the 'proctest' module set_search_path(pypath "${CMAKE_SOURCE_DIR}/tools/py" "$ENV{PYTHON_PATH}") - add_test(NAME c-fdlimit-tests COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/fdlimit.py) - set_tests_properties(c-fdlimit-tests PROPERTIES ENVIRONMENT "PATH=${path};PYTHONPATH=${pypath}") + set(run_env ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/proton-c/env.py "PATH=${test_path}" "PYTHONPATH=${pypath}") + add_test(NAME c-fdlimit-tests COMMAND ${run_env} -- ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/fdlimit.py) + #WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + set_tests_properties(c-fdlimit-tests PROPERTIES ENVIRONMENT "PATH=${test_path};PYTHONPATH=${pypath}") endif(HAS_PROACTOR)