You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2020/04/22 19:18:59 UTC

[thrift] branch master updated (df2f5d2 -> 93171d2)

This is an automated email from the ASF dual-hosted git repository.

jensg pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git.


    from df2f5d2  THRIFT-5178: Add constructor with default host to THttpClient Client: cpp Patch: Mario Emmenlauer
     new 6064696  lib/js/Gruntfile.js: Generalized to add some level of Windows CMD support (not complete yet)
     new 93171d2  THRIFT-5109 Misc Cmake build improvements Patch: Mario Emmenlauer

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CMakeLists.txt                  |  8 +++++++
 build/cmake/DefineOptions.cmake |  2 +-
 compiler/cpp/CMakeLists.txt     |  7 ++++++
 lib/js/CMakeLists.txt           | 52 +++++++++++++++++++++++++++++++++++++++++
 lib/js/Gruntfile.js             | 33 +++++++++++++++-----------
 lib/js/Makefile.am              |  1 +
 lib/nodejs/CMakeLists.txt       | 44 ++++++++++++++++++++++++++++++++++
 lib/nodejs/Makefile.am          |  1 +
 8 files changed, 133 insertions(+), 15 deletions(-)
 create mode 100644 lib/js/CMakeLists.txt
 create mode 100644 lib/nodejs/CMakeLists.txt


[thrift] 02/02: THRIFT-5109 Misc Cmake build improvements Patch: Mario Emmenlauer

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git

commit 93171d2482f98d77887874afc3bbb73f0bbb65c2
Author: Mario Emmenlauer <me...@biodataanalysis.de>
AuthorDate: Wed Oct 23 17:32:34 2019 +0200

    THRIFT-5109 Misc Cmake build improvements
    Patch: Mario Emmenlauer
    
    This closes #2094
---
 CMakeLists.txt                  |  8 +++++++
 build/cmake/DefineOptions.cmake |  2 +-
 compiler/cpp/CMakeLists.txt     |  7 ++++++
 lib/js/CMakeLists.txt           | 52 +++++++++++++++++++++++++++++++++++++++++
 lib/js/Makefile.am              |  1 +
 lib/nodejs/CMakeLists.txt       | 44 ++++++++++++++++++++++++++++++++++
 lib/nodejs/Makefile.am          |  1 +
 7 files changed, 114 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2e682a..18e52f6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -113,6 +113,14 @@ if(BUILD_JAVA)
     add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/java)
 endif()
 
+if(BUILD_JAVASCRIPT)
+    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/js)
+endif()
+
+if(BUILD_NODEJS)
+    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/nodejs)
+endif()
+
 if(BUILD_PYTHON)
     add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/py)
     if(BUILD_TESTING)
diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake
index 8357160..8c7a4a9 100644
--- a/build/cmake/DefineOptions.cmake
+++ b/build/cmake/DefineOptions.cmake
@@ -108,7 +108,7 @@ endif()
 # Javascript
 option(WITH_JAVASCRIPT "Build Javascript Thrift library" ON)
 CMAKE_DEPENDENT_OPTION(BUILD_JAVASCRIPT "Build Javascript library" ON
-                       "BUILD_LIBRARIES;WITH_JAVASCRIPT" OFF)
+                       "BUILD_LIBRARIES;WITH_JAVASCRIPT;NOT WIN32; NOT CYGWIN" OFF)
 
 # NodeJS
 option(WITH_NODEJS "Build NodeJS Thrift library" ON)
diff --git a/compiler/cpp/CMakeLists.txt b/compiler/cpp/CMakeLists.txt
index 92b0a5f..a65a419 100644
--- a/compiler/cpp/CMakeLists.txt
+++ b/compiler/cpp/CMakeLists.txt
@@ -115,6 +115,13 @@ set_target_properties(thrift-compiler PROPERTIES OUTPUT_NAME thrift)
 
 target_link_libraries(thrift-compiler parse)
 
+add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/thrift${CMAKE_EXECUTABLE_SUFFIX}"
+    DEPENDS thrift-compiler
+    COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:thrift-compiler>" "${CMAKE_CURRENT_SOURCE_DIR}/"
+    COMMENT "Copying the thrift compiler to the source tree for use by downstream targets")
+add_custom_target(copy-thrift-compiler
+    DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/thrift${CMAKE_EXECUTABLE_SUFFIX}")
+
 install(TARGETS thrift-compiler DESTINATION bin)
 
 if(BUILD_TESTING)
diff --git a/lib/js/CMakeLists.txt b/lib/js/CMakeLists.txt
new file mode 100644
index 0000000..c312a21
--- /dev/null
+++ b/lib/js/CMakeLists.txt
@@ -0,0 +1,52 @@
+#
+# 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.
+#
+
+if(NOT JAVASCRIPT_INSTALL_DIR)
+    if(IS_ABSOLUTE "${LIB_INSTALL_DIR}")
+        set(JAVASCRIPT_INSTALL_DIR "${LIB_INSTALL_DIR}/js")
+    else()
+        set(JAVASCRIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/js")
+    endif()
+endif()
+
+if(IS_ABSOLUTE "${DOC_INSTALL_DIR}")
+    set(JAVASCRIPT_DOC_INSTALL_DIR "${DOC_INSTALL_DIR}/js")
+else()
+    set(JAVASCRIPT_DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}/js")
+endif()
+
+add_custom_target(ThriftJavascriptPreDeps ALL
+    COMMENT "Installing Javascript dependencies using npm"
+    DEPENDS copy-thrift-compiler
+    COMMAND npm install
+    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+)
+
+add_custom_target(ThriftJavascript ALL
+    COMMENT "Building Javascript library using npx Grunt wrapper"
+    DEPENDS ThriftJavascriptPreDeps
+    COMMAND npx grunt
+    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+)
+
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/dist/"
+        DESTINATION "${JAVASCRIPT_INSTALL_DIR}"
+        FILES_MATCHING PATTERN "thrift*.js")
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/doc/"
+        DESTINATION "${JAVASCRIPT_DOC_INSTALL_DIR}")
diff --git a/lib/js/Makefile.am b/lib/js/Makefile.am
index b534042..4906d7d 100644
--- a/lib/js/Makefile.am
+++ b/lib/js/Makefile.am
@@ -57,6 +57,7 @@ EXTRA_DIST = \
 	Gruntfile.js \
 	package.json \
 	package-lock.json \
+	CMakeLists.txt \
 	README.md \
 	src \
 	test
diff --git a/lib/nodejs/CMakeLists.txt b/lib/nodejs/CMakeLists.txt
new file mode 100644
index 0000000..5059044
--- /dev/null
+++ b/lib/nodejs/CMakeLists.txt
@@ -0,0 +1,44 @@
+#
+# 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.
+#
+
+if(NOT NODEJS_INSTALL_DIR)
+    if(IS_ABSOLUTE "${LIB_INSTALL_DIR}")
+        set(NODEJS_INSTALL_DIR "${LIB_INSTALL_DIR}/nodejs")
+    else()
+        set(NODEJS_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/nodejs")
+    endif()
+endif()
+
+# Currently no doc
+#if(IS_ABSOLUTE "${DOC_INSTALL_DIR}")
+#    set(NODEJS_DOC_INSTALL_DIR "${DOC_INSTALL_DIR}/nodejs")
+#else()
+#    set(NODEJS_DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}/nodejs")
+#endif()
+
+add_custom_target(ThriftNodeJS ALL
+    COMMENT "Installing NodeJS dependencies with npm"
+    COMMAND npm install
+    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../"
+)
+
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lib/"
+        DESTINATION "${NODEJS_INSTALL_DIR}")
+#install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/doc/"
+#        DESTINATION "${NODEJS_DOC_INSTALL_DIR}")
diff --git a/lib/nodejs/Makefile.am b/lib/nodejs/Makefile.am
index 71068b5..67f6ff6 100755
--- a/lib/nodejs/Makefile.am
+++ b/lib/nodejs/Makefile.am
@@ -42,4 +42,5 @@ EXTRA_DIST = \
 	lib \
 	test \
 	coding_standards.md \
+	CMakeLists.txt \
 	README.md


[thrift] 01/02: lib/js/Gruntfile.js: Generalized to add some level of Windows CMD support (not complete yet)

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git

commit 6064696ae08e9764f588143f8ffd380b95405aca
Author: Mario Emmenlauer <ma...@emmenlauer.de>
AuthorDate: Wed Apr 15 10:26:09 2020 +0200

    lib/js/Gruntfile.js: Generalized to add some level of Windows CMD support (not complete yet)
---
 lib/js/Gruntfile.js | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/lib/js/Gruntfile.js b/lib/js/Gruntfile.js
index 87b826f..4421f0c 100644
--- a/lib/js/Gruntfile.js
+++ b/lib/js/Gruntfile.js
@@ -39,27 +39,22 @@ module.exports = function(grunt) {
     },
     shell: {
       InstallThriftJS: {
-        command: 'mkdir -p test/build/js/lib; cp src/thrift.js test/build/js/thrift.js'
+        command: 'cp src/thrift.js test/build/js/thrift.js'
       },
       InstallThriftNodeJSDep: {
-        command: 'cd ../..; npm install'
+        command: 'cd ../.. && npm install'
       },
       InstallTestLibs: {
-        command: 'cd test; ant download_jslibs'
+        command: 'cd test && ant download_jslibs'
       },
       ThriftGen: {
         command: [
-          'mkdir -p test/gen-js',
-          '../../compiler/cpp/thrift -gen js --out test/gen-js ../../test/ThriftTest.thrift',
-          '../../compiler/cpp/thrift -gen js --out test/gen-js ../../test/JsDeepConstructorTest.thrift',
-          'mkdir -p test/gen-js-jquery',
-          '../../compiler/cpp/thrift -gen js:jquery --out test/gen-js-jquery ../../test/ThriftTest.thrift',
-          'mkdir -p test/gen-nodejs',
-          '../../compiler/cpp/thrift -gen js:node --out test/gen-nodejs ../../test/ThriftTest.thrift',
-          'mkdir -p test/gen-js-es6',
-          '../../compiler/cpp/thrift -gen js:es6 --out test/gen-js-es6 ../../test/ThriftTest.thrift',
-          'mkdir -p test/gen-nodejs-es6',
-          '../../compiler/cpp/thrift -gen js:node,es6 --out ./test/gen-nodejs-es6 ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js --out test/gen-js ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js --out test/gen-js ../../test/JsDeepConstructorTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js:jquery --out test/gen-js-jquery ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js:node --out test/gen-nodejs ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js:es6 --out test/gen-js-es6 ../../test/ThriftTest.thrift',
+          '"../../compiler/cpp/thrift" -gen js:node,es6 --out ./test/gen-nodejs-es6 ../../test/ThriftTest.thrift',
         ].join(' && ')
       },
       ThriftGenJQ: {
@@ -290,7 +285,17 @@ module.exports = function(grunt) {
     }, 1000);
   });
 
+  grunt.registerTask('CreateDirectories', 'Creating required local directories', function () {
+    grunt.file.mkdir('test/build/js/lib');
+    grunt.file.mkdir('test/gen-js');
+    grunt.file.mkdir('test/gen-js-jquery');
+    grunt.file.mkdir('test/gen-nodejs');
+    grunt.file.mkdir('test/gen-js-es6');
+    grunt.file.mkdir('test/gen-nodejs-es6');
+});
+
   grunt.registerTask('installAndGenerate', [
+    'CreateDirectories',
     'shell:InstallThriftJS',
     'shell:InstallThriftNodeJSDep',
     'shell:ThriftGen',