Mario Emmenlauer | 93171d2 | 2019-10-23 17:32:34 +0200 | [diff] [blame] | 1 | # |
| 2 | # Licensed to the Apache Software Foundation (ASF) under one |
| 3 | # or more contributor license agreements. See the NOTICE file |
| 4 | # distributed with this work for additional information |
| 5 | # regarding copyright ownership. The ASF licenses this file |
| 6 | # to you under the Apache License, Version 2.0 (the |
| 7 | # "License"); you may not use this file except in compliance |
| 8 | # with the License. You may obtain a copy of the License at |
| 9 | # |
| 10 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | # |
| 12 | # Unless required by applicable law or agreed to in writing, |
| 13 | # software distributed under the License is distributed on an |
| 14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| 15 | # KIND, either express or implied. See the License for the |
| 16 | # specific language governing permissions and limitations |
| 17 | # under the License. |
| 18 | # |
| 19 | |
| 20 | if(NOT JAVASCRIPT_INSTALL_DIR) |
| 21 | if(IS_ABSOLUTE "${LIB_INSTALL_DIR}") |
| 22 | set(JAVASCRIPT_INSTALL_DIR "${LIB_INSTALL_DIR}/js") |
| 23 | else() |
| 24 | set(JAVASCRIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/js") |
| 25 | endif() |
| 26 | endif() |
| 27 | |
| 28 | if(IS_ABSOLUTE "${DOC_INSTALL_DIR}") |
| 29 | set(JAVASCRIPT_DOC_INSTALL_DIR "${DOC_INSTALL_DIR}/js") |
| 30 | else() |
| 31 | set(JAVASCRIPT_DOC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}/js") |
| 32 | endif() |
| 33 | |
| 34 | add_custom_target(ThriftJavascriptPreDeps ALL |
| 35 | COMMENT "Installing Javascript dependencies using npm" |
| 36 | DEPENDS copy-thrift-compiler |
| 37 | COMMAND npm install |
| 38 | WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
| 39 | ) |
| 40 | |
Mario Emmenlauer | 037916b | 2020-05-11 16:19:44 +0200 | [diff] [blame^] | 41 | file(GLOB_RECURSE THRIFTJAVASCRIPT_SOURCES LIST_DIRECTORIES false |
| 42 | "${CMAKE_CURRENT_SOURCE_DIR}/*") |
| 43 | list(FILTER THRIFTJAVASCRIPT_SOURCES EXCLUDE REGEX ".*/(dist|doc)/.*") |
| 44 | add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/dist/thrift.js" |
Mario Emmenlauer | 93171d2 | 2019-10-23 17:32:34 +0200 | [diff] [blame] | 45 | COMMENT "Building Javascript library using npx Grunt wrapper" |
Mario Emmenlauer | 037916b | 2020-05-11 16:19:44 +0200 | [diff] [blame^] | 46 | DEPENDS ThriftJavascriptPreDeps ${THRIFTJAVASCRIPT_SOURCES} |
Mario Emmenlauer | 93171d2 | 2019-10-23 17:32:34 +0200 | [diff] [blame] | 47 | COMMAND npx grunt |
| 48 | WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
| 49 | ) |
Mario Emmenlauer | 037916b | 2020-05-11 16:19:44 +0200 | [diff] [blame^] | 50 | add_custom_target(ThriftJavascript ALL |
| 51 | DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/dist/thrift.js") |
Mario Emmenlauer | 93171d2 | 2019-10-23 17:32:34 +0200 | [diff] [blame] | 52 | |
| 53 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/dist/" |
| 54 | DESTINATION "${JAVASCRIPT_INSTALL_DIR}" |
| 55 | FILES_MATCHING PATTERN "thrift*.js") |
| 56 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/doc/" |
| 57 | DESTINATION "${JAVASCRIPT_DOC_INSTALL_DIR}") |