You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2018/07/12 15:03:58 UTC
qpid-proton git commit: Revert "PROTON-1798: Replace env.py with
`cmake -E env`"
Repository: qpid-proton
Updated Branches:
refs/heads/master 89e65bc15 -> 18cc9e6ae
Revert "PROTON-1798: Replace env.py with `cmake -E env`"
CMake 2.8.12 does not support this feature.
This reverts commit 89e65bc15862bdc63c6a7abb3e37ed73d9d0f4b7.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/18cc9e6a
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/18cc9e6a
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/18cc9e6a
Branch: refs/heads/master
Commit: 18cc9e6ae317362625a65b5a16ac429726caf85e
Parents: 89e65bc
Author: Alan Conway <ac...@redhat.com>
Authored: Thu Jul 12 11:02:27 2018 -0400
Committer: Alan Conway <ac...@redhat.com>
Committed: Thu Jul 12 11:02:27 2018 -0400
----------------------------------------------------------------------
CMakeLists.txt | 2 +-
c/CMakeLists.txt | 5 ++-
c/examples/CMakeLists.txt | 4 +--
c/tests/CMakeLists.txt | 4 +--
cpp/CMakeLists.txt | 5 ++-
cpp/examples/CMakeLists.txt | 7 ++--
go/CMakeLists.txt | 2 +-
python/CMakeLists.txt | 16 ++++-----
ruby/CMakeLists.txt | 2 +-
scripts/env.py | 70 ++++++++++++++++++++++++++++++++++++++++
10 files changed, 90 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 035c300..b7ea06c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,7 +40,7 @@ enable_testing ()
## Variables used across components
-set (WITH_ENV "${CMAKE_COMMAND}" -E env)
+set (PN_ENV_SCRIPT "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/scripts/env.py")
set (PN_C_INCLUDE_DIR "${CMAKE_BINARY_DIR}/c/include")
set (PN_C_LIBRARY_DIR "${CMAKE_BINARY_DIR}/c")
set (PN_C_SOURCE_DIR "${CMAKE_BINARY_DIR}/c/src")
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/c/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt
index 7c87c21..df9ff62 100644
--- a/c/CMakeLists.txt
+++ b/c/CMakeLists.txt
@@ -65,14 +65,13 @@ include_directories (
add_custom_command (
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
- COMMAND ${WITH_ENV} PYTHONPATH=${CMAKE_SOURCE_DIR}/tools/python ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
+ COMMAND ${PN_ENV_SCRIPT} PYTHONPATH=${CMAKE_SOURCE_DIR}/tools/python ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py
)
add_custom_command (
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
- COMMAND ${WITH_ENV} PYTHONPATH=${CMAKE_SOURCE_DIR}/tools/python
- ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
+ COMMAND ${PN_ENV_SCRIPT} PYTHONPATH=${CMAKE_SOURCE_DIR}/tools/python ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py
)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/c/examples/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/c/examples/CMakeLists.txt b/c/examples/CMakeLists.txt
index a0e172d..6128f62 100644
--- a/c/examples/CMakeLists.txt
+++ b/c/examples/CMakeLists.txt
@@ -45,6 +45,6 @@ endif()
add_test(
NAME c-example-tests
- COMMAND ${WITH_ENV} "PATH=${test_path}" ${VALGRIND_ENV}
- ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v
+ COMMAND ${PN_ENV_SCRIPT} "PATH=${test_path}" ${VALGRIND_ENV} --
+ ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/c/tests/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/c/tests/CMakeLists.txt b/c/tests/CMakeLists.txt
index 61adc98..c79cda4 100644
--- a/c/tests/CMakeLists.txt
+++ b/c/tests/CMakeLists.txt
@@ -30,7 +30,7 @@ macro (pn_build_c_test test)
endif (BUILD_WITH_CXX)
endmacro()
-set(test_env ${WITH_ENV} "PATH=$<TARGET_FILE_DIR:qpid-proton-core>")
+set(test_env ${PN_ENV_SCRIPT} -- "PATH=$<TARGET_FILE_DIR:qpid-proton-core>")
macro (pn_add_c_test test)
pn_build_c_test(${test} ${ARGN})
@@ -79,7 +79,7 @@ if(HAS_PROACTOR)
set(path "$<TARGET_FILE_DIR:c-broker>:$ENV{PATH}")
endif(WIN32)
- add_test(NAME c-fdlimit-tests COMMAND ${WITH_ENV} "PATH=${path}" "PYTHONPATH=${pypath}" ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/fdlimit.py)
+ add_test(NAME c-fdlimit-tests COMMAND ${PN_ENV_SCRIPT} -- "PATH=${path}" "PYTHONPATH=${pypath}" ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/fdlimit.py)
endif(HAS_PROACTOR)
# fuzz tests: tests/fuzz
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 00baa39..71b0a29 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -239,10 +239,9 @@ macro(add_cpp_test test)
target_link_libraries (${test} qpid-proton-cpp ${PLATFORM_LIBS})
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
add_test (NAME cpp-${test}
- COMMAND ${WITH_ENV}
+ COMMAND ${PN_ENV_SCRIPT}
"PATH=$<TARGET_FILE_DIR:qpid-proton>"
- "$<TARGET_FILE:${test}>"
- ${ARGN})
+ $<TARGET_FILE:${test}> ${ARGN})
else ()
add_test (NAME cpp-${test} COMMAND ${memcheck-cmd} ${CMAKE_CURRENT_BINARY_DIR}/${test} ${ARGN})
endif ()
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/cpp/examples/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/examples/CMakeLists.txt b/cpp/examples/CMakeLists.txt
index 4c58a72..18d922e 100644
--- a/cpp/examples/CMakeLists.txt
+++ b/cpp/examples/CMakeLists.txt
@@ -112,11 +112,8 @@ macro(add_cpp_test name)
endif(WIN32)
add_test(
NAME ${name}
- COMMAND ${WITH_ENV}
- "PATH=${test_path}"
- ${VALGRIND_ENV}
- "HAS_CPP11=$<$<BOOL:${HAS_ENOUGH_CPP11}>:1>"
- ${ARGN}
+ COMMAND ${PN_ENV_SCRIPT} "PATH=${test_path}" ${VALGRIND_ENV}
+ "HAS_CPP11=$<$<BOOL:${HAS_ENOUGH_CPP11}>:1>" -- ${ARGN}
)
endmacro()
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/go/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/go/CMakeLists.txt b/go/CMakeLists.txt
index 771730a..951f8a3 100644
--- a/go/CMakeLists.txt
+++ b/go/CMakeLists.txt
@@ -48,7 +48,7 @@ add_custom_target(go-src-link ALL
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/src ${GOPATH}/src)
# Following are CACHE INTERNAL so examples/CMakeLists.txt can see them.
-set(GO_ENV ${WITH_ENV}
+set(GO_ENV ${PN_ENV_SCRIPT} --
"GOPATH=${GOPATH}"
"CGO_CFLAGS=-I${PN_C_INCLUDE_DIR}"
"CGO_LDFLAGS=-L${PN_C_LIBRARY_DIR}"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/python/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 282f236..31fcfba 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -113,9 +113,8 @@ if (EPYDOC_EXE)
list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}")
endforeach(py_src_doc)
add_custom_target(docs-py
- COMMAND ${WITH_ENV}
- PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}
- ${EPYDOC_EXE} -v --no-private --html -o ${CMAKE_CURRENT_BINARY_DIR}/html ${PY_DOC_FILES}
+ COMMAND ${PN_ENV_SCRIPT} -- PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}
+ ${EPYDOC_EXE} -v --no-private --html -o ${CMAKE_CURRENT_BINARY_DIR}/html ${PY_DOC_FILES}
DEPENDS ${SWIG_MODULE_${cproton}_REAL_NAME})
add_dependencies(docs docs-py)
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html/"
@@ -128,8 +127,7 @@ find_program(SPHINX_EXE sphinx-build)
mark_as_advanced (SPHINX_EXE)
if (SPHINX_EXE)
add_custom_target(tutorial-py
- COMMAND ${WITH_ENV}
- PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}
+ COMMAND ${PN_ENV_SCRIPT} -- PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_EXE} -b html ${CMAKE_CURRENT_SOURCE_DIR}/docs ${CMAKE_CURRENT_BINARY_DIR}/tutorial)
add_dependencies(docs tutorial-py)
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/tutorial/"
@@ -204,11 +202,11 @@ if (CMAKE_BUILD_TYPE MATCHES "Coverage")
endif(CMAKE_BUILD_TYPE MATCHES "Coverage")
add_test (NAME python-test
- COMMAND ${WITH_ENV}
+ COMMAND ${PN_ENV_SCRIPT}
"PATH=${py_path}" "PYTHONPATH=${py_pythonpath}"
"SASLPASSWD=${CyrusSASL_Saslpasswd_EXECUTABLE}"
${VALGRIND_ENV}
- ${PYTHON_EXECUTABLE} ${python_coverage_options} "${py_tests}/proton-test")
+ ${PYTHON_EXECUTABLE} -- ${python_coverage_options} "${py_tests}/proton-test")
set_tests_properties(python-test PROPERTIES PASS_REGULAR_EXPRESSION "Totals: .* 0 failed")
check_python_module("tox" TOX_MODULE_FOUND)
@@ -232,11 +230,11 @@ else ()
"${CMAKE_CURRENT_SOURCE_DIR}/tox.ini.in"
"${CMAKE_CURRENT_BINARY_DIR}/tox.ini")
add_test (NAME python-tox-test
- COMMAND ${WITH_ENV}
+ COMMAND ${PN_ENV_SCRIPT}
"PATH=${py_path}"
"SASLPASSWD=${CyrusSASL_Saslpasswd_EXECUTABLE}"
"SWIG=${SWIG_EXECUTABLE}"
- ${VALGRIND_ENV}
+ ${VALGRIND_ENV} --
${PYTHON_EXECUTABLE} -m tox)
set_tests_properties(python-tox-test
PROPERTIES
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/ruby/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/ruby/CMakeLists.txt b/ruby/CMakeLists.txt
index 09fa49f..59486f9 100644
--- a/ruby/CMakeLists.txt
+++ b/ruby/CMakeLists.txt
@@ -122,7 +122,7 @@ to_native_path("${bin};${c_lib_dir};$ENV{PATH}" PATH)
execute_process(COMMAND ${RUBY_EXECUTABLE} -r minitest -e ""
RESULT_VARIABLE result OUTPUT_QUIET ERROR_QUIET)
if (result EQUAL 0) # Have minitest
- set(test_env ${WITH_ENV} "PATH=${PATH}" "RUBYLIB=${RUBYLIB}" "SASLPASSWD=${CyrusSASL_Saslpasswd_EXECUTABLE}")
+ set(test_env ${PN_ENV_SCRIPT} -- "PATH=${PATH}" "RUBYLIB=${RUBYLIB}" "SASLPASSWD=${CyrusSASL_Saslpasswd_EXECUTABLE}")
macro(add_ruby_test script)
get_filename_component(name ${script} NAME_WE)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/18cc9e6a/scripts/env.py
----------------------------------------------------------------------
diff --git a/scripts/env.py b/scripts/env.py
new file mode 100644
index 0000000..04fa8bb
--- /dev/null
+++ b/scripts/env.py
@@ -0,0 +1,70 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+#
+# A platform-agnostic tool for running a program in a modified environment.
+#
+
+import sys
+import os
+import subprocess
+from optparse import OptionParser
+
+def main(argv=None):
+
+ parser = OptionParser(usage="Usage: %prog [options] [--] VAR=VALUE... command [options] arg1 arg2...")
+ parser.add_option("-i", "--ignore-environment",
+ action="store_true", default=False,
+ help="Start with an empty environment (do not inherit current environment)")
+
+ (options, args) = parser.parse_args(args=argv)
+
+ if options.ignore_environment:
+ new_env = {}
+ else:
+ new_env = os.environ.copy()
+
+ # pull out each name value pair
+ while (len(args)):
+ z = args[0].split("=",1)
+ if len(z) != 2:
+ break; # done with env args
+ if len(z[0]) == 0:
+ raise Exception("Error: incorrect format for env var: '%s'" % str(args[x]))
+ del args[0]
+ if len(z[1]) == 0:
+ # value is not present, so delete it
+ if z[0] in new_env:
+ del new_env[z[0]]
+ else:
+ new_env[z[0]] = z[1]
+
+ if len(args) == 0 or len(args[0]) == 0:
+ raise Exception("Error: syntax error in command arguments")
+
+ if new_env.get("VALGRIND") and new_env.get("VALGRIND_ALL"):
+ # Python generates a lot of possibly-lost errors that are not errors, don't show them.
+ args = [new_env.get("VALGRIND"), "--show-reachable=no", "--show-possibly-lost=no",
+ "--error-exitcode=42"] + args
+
+ p = subprocess.Popen(args, env=new_env)
+ return p.wait()
+
+if __name__ == "__main__":
+ sys.exit(main())
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org