summaryrefslogtreecommitdiffstats
path: root/cmake/FindNodejs.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindNodejs.cmake')
-rw-r--r--cmake/FindNodejs.cmake40
1 files changed, 40 insertions, 0 deletions
diff --git a/cmake/FindNodejs.cmake b/cmake/FindNodejs.cmake
new file mode 100644
index 000000000..00ce5696c
--- /dev/null
+++ b/cmake/FindNodejs.cmake
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+find_program(Nodejs_EXECUTABLE NAMES node nodejs)
+
+if(Nodejs_EXECUTABLE)
+ execute_process(
+ COMMAND ${Nodejs_EXECUTABLE} --version
+ OUTPUT_VARIABLE Nodejs_VERSION
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process(
+ COMMAND ${Nodejs_EXECUTABLE} -p "process.arch"
+ OUTPUT_VARIABLE Nodejs_ARCH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+
+string (REGEX MATCHALL "([1-9][0-9])\..*" Nodejs_VERSION "${Nodejs_VERSION}")
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Nodejs
+ FOUND_VAR
+ Nodejs_FOUND
+ VERSION_VAR
+ Nodejs_VERSION
+ REQUIRED_VARS
+ Nodejs_EXECUTABLE
+)
+
+if(Nodejs_FOUND AND NOT TARGET Nodejs::Nodejs)
+ add_executable(Nodejs::Nodejs IMPORTED)
+ set_target_properties(Nodejs::Nodejs PROPERTIES IMPORTED_LOCATION "${Nodejs_EXECUTABLE}")
+endif()
+
+include(FeatureSummary)
+set_package_properties(Nodejs PROPERTIES
+ URL "https://nodejs.org/"
+ DESCRIPTION "JavaScript runtime environment that runs on the V8 engine"
+)