[cmake] Use env command to set PYTHONPATH if cmake is new enough
authorannulen@yandex.ru <annulen@yandex.ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Feb 2017 17:11:05 +0000 (17:11 +0000)
committerannulen@yandex.ru <annulen@yandex.ru@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Feb 2017 17:11:05 +0000 (17:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=156833

Reviewed by Alex Christensen.

This change fixes 2 issues when CMake >= 3.1 is used:
- When PYTHONPATH contains special characters, CMake adds quotes around
"PYTHONPATH=..." and produces broken build command in non-WIN32 case.
- On WIN32, unix-like shell can be used instead of cmd.exe, but this case
cannot be easily detected in cmake.

* Source/cmake/WebKitMacros.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212435 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Source/cmake/WebKitMacros.cmake

index 739dca5..2ce5e9a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2017-02-16  Konstantin Tokarev  <annulen@yandex.ru>
+
+        [cmake] Use env command to set PYTHONPATH if cmake is new enough
+        https://bugs.webkit.org/show_bug.cgi?id=156833
+
+        Reviewed by Alex Christensen.
+
+        This change fixes 2 issues when CMake >= 3.1 is used:
+        - When PYTHONPATH contains special characters, CMake adds quotes around
+        "PYTHONPATH=..." and produces broken build command in non-WIN32 case.
+        - On WIN32, unix-like shell can be used instead of cmd.exe, but this case
+        cannot be easily detected in cmake.
+
+        * Source/cmake/WebKitMacros.cmake:
+
 2017-02-15  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         Unreviewed. Add ENABLE_INTERSECTION_OBSERVER option to CMake.
index aa4d810..6e9afe0 100644 (file)
@@ -385,7 +385,9 @@ macro(GENERATE_WEBKIT2_MESSAGE_SOURCES _output_source _input_files)
 endmacro()
 
 macro(MAKE_JS_FILE_ARRAYS _output_cpp _output_h _scripts _scripts_dependencies)
-    if (WIN32)
+    if (NOT CMAKE_VERSION VERSION_LESS 3.1)
+        set(_python_path ${CMAKE_COMMAND} -E env "PYTHONPATH=${JavaScriptCore_SCRIPTS_DIR}")
+    elseif (WIN32)
         set(_python_path set "PYTHONPATH=${JavaScriptCore_SCRIPTS_DIR}" &&)
     else ()
         set(_python_path "PYTHONPATH=${JavaScriptCore_SCRIPTS_DIR}")