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