Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
LOFAR
Manage
Activity
Members
Labels
Plan
Issues
Wiki
Jira issues
Open Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RadioObservatory
LOFAR
Commits
812e5f8a
Commit
812e5f8a
authored
6 years ago
by
Mattia Mancini
Browse files
Options
Downloads
Patches
Plain Diff
OSB-29
: changed cmake script to take track of each and every file
parent
e2c5c7ee
No related branches found
No related tags found
2 merge requests
!89
Monitoring maintenance Epic branch merge
,
!1
Resolve OSB-13 "Monitoringmaintenance "
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
CMake/NPMInstall.cmake
+66
-21
66 additions, 21 deletions
CMake/NPMInstall.cmake
with
66 additions
and
21 deletions
CMake/NPMInstall.cmake
+
66
−
21
View file @
812e5f8a
...
...
@@ -40,6 +40,24 @@
find_package
(
NPM
)
function
(
extract_relative_path OUTPUT_FILE_LIST BASE_PATH ARGC
)
set
(
OUTPUT
""
)
foreach
(
FILE
${
ARGC
}
)
file
(
RELATIVE_PATH RELPATH
${
BASE_PATH
}
"
${
FILE
}
"
)
list
(
APPEND OUTPUT
"
${
RELPATH
}
"
)
endforeach
(
FILE
)
set
(
${
OUTPUT_FILE_LIST
}
${
OUTPUT
}
PARENT_SCOPE
)
endfunction
(
extract_relative_path
)
function
(
append_basepath_to_file OUTPUT_FILE_LIST BASE_PATH ARGC
)
set
(
OUTPUT
""
)
foreach
(
FILE
${
ARGC
}
)
set
(
ITEM
"
${
BASE_PATH
}
/
${
FILE
}
"
)
list
(
APPEND OUTPUT
"
${
ITEM
}
"
)
endforeach
(
FILE
)
set
(
${
OUTPUT_FILE_LIST
}
${
OUTPUT
}
PARENT_SCOPE
)
endfunction
(
append_basepath_to_file
)
#
# function npm_install
#
...
...
@@ -70,7 +88,7 @@ function(npm_install NPM_PACKAGE_SPECIFICATION)
get_filename_component
(
WEBSITE_PUBLIC_DIR
"
${
NPM_INSTALL_PUBLIC
}
"
REALPATH
)
get_filename_component
(
WEBSITE_SOURCE_DIR
"
${
NPM_INSTALL_SOURCE
}
"
REALPATH
)
get_filename_component
(
JSON_PACKAGE_SPECIFICATION
"
${
NPM_PACKAGE_SPECIFICATION
}
"
REALPATH
)
get_filename_component
(
NPM_BINARY_DIR
"
${
NPM_BINARY_DIR
}
"
REALPATH
)
# Checks if the directories public and source are actually present in the disk
if
(
EXISTS WEBSITE_PUBLIC_DIR
)
message
(
FATAL_ERROR
"public directory
\"
${
NPM_INSTALL_PUBLIC
}
\"
cannot be found."
)
...
...
@@ -82,49 +100,76 @@ function(npm_install NPM_PACKAGE_SPECIFICATION)
get_filename_component
(
NPM_BINARY_DIR
"
${
CMAKE_CURRENT_BINARY_DIR
}
"
REALPATH
)
add_custom_target
(
copy_src_public_
${
PACKAGE_NAME
}
SOURCES
"
${
NPM_BINARY_DIR
}
/public"
"
${
NPM_BINARY_DIR
}
/src"
)
add_custom_target
(
copy_package_json_
${
PACKAGE_NAME
}
SOURCES
"
${
NPM_BINARY_DIR
}
/package.json"
)
add_custom_target
(
download_npm_dependencies_
${
PACKAGE_NAME
}
SOURCES
"
${
NPM_BINARY_DIR
}
/node_modules"
"
${
NPM_BINARY_DIR
}
/package-lock.json"
DEPENDS copy_src_public_
${
PACKAGE_NAME
}
copy_package_json_
${
PACKAGE_NAME
}
)
add_custom_target
(
packing_javascript_files_
${
PACKAGE_NAME
}
ALL SOURCES
${
NPM_BINARY_DIR
}
/build
)
add_custom_target
(
start_development_server_
${
PACKAGE_NAME
}
SOURCES
"
${
NPM_BINARY_DIR
}
/node_modules"
"
${
NPM_BINARY_DIR
}
/package-lock.json"
"
${
NPM_BINARY_DIR
}
/package.json"
COMMENT
"Start start_development_server for
${
PACKAGE_NAME
}
"
)
file
(
GLOB_RECURSE SOURCE_FILES_PATH
${
WEBSITE_SOURCE_DIR
}
"
${
WEBSITE_SOURCE_DIR
}
/*"
)
file
(
GLOB_RECURSE PUBLIC_FILES_PATH
${
WEBSITE_PUBLIC_DIR
}
"
${
WEBSITE_PUBLIC_DIR
}
/*"
)
extract_relative_path
(
SOURCE_FILES
${
WEBSITE_SOURCE_DIR
}
"
${
SOURCE_FILES_PATH
}
"
)
extract_relative_path
(
PUBLIC_FILES
${
WEBSITE_PUBLIC_DIR
}
"
${
PUBLIC_FILES_PATH
}
"
)
append_basepath_to_file
(
INSTALLED_SOURCE_FILES
"
${
NPM_BINARY_DIR
}
/src"
"
${
SOURCE_FILES
}
"
)
append_basepath_to_file
(
INSTALLED_PUBLIC_FILES
"
${
NPM_BINARY_DIR
}
/public"
"
${
PUBLIC_FILES
}
"
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/package.json"
COMMAND
${
CMAKE_COMMAND
}
-E copy_if_different
${
JSON_PACKAGE_SPECIFICATION
}
${
NPM_BINARY_DIR
}
/package.json
COMMAND
${
CMAKE_COMMAND
}
-E copy_if_different
"
${
JSON_PACKAGE_SPECIFICATION
}
"
"
${
NPM_BINARY_DIR
}
/package.json"
DEPENDS
${
JSON_PACKAGE_SPECIFICATION
}
COMMENT
"Copying
${
JSON_PACKAGE_SPECIFICATION
}
to
${
NPM_BINARY_DIR
}
/package.json for
${
PACKAGE_NAME
}
"
)
foreach
(
file
${
SOURCE_FILES
}
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/src/
${
file
}
"
COMMAND
${
CMAKE_COMMAND
}
-E copy_if_different
${
WEBSITE_SOURCE_DIR
}
/
${
file
}
${
NPM_BINARY_DIR
}
/src/
${
file
}
DEPENDS
"
${
WEBSITE_SOURCE_DIR
}
/
${
file
}
"
COMMENT
"Copying file from
${
WEBSITE_SOURCE_DIR
}
/
${
file
}
to
${
NPM_BINARY_DIR
}
/src/
${
file
}
"
)
endforeach
(
file
)
foreach
(
file
${
PUBLIC_FILES
}
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/public/
${
file
}
"
COMMAND
${
CMAKE_COMMAND
}
-E copy_if_different
"
${
WEBSITE_PUBLIC_DIR
}
/
${
file
}
"
"
${
NPM_BINARY_DIR
}
/public/
${
file
}
"
DEPENDS
"
${
WEBSITE_PUBLIC_DIR
}
/
${
file
}
"
COMMENT
"Copying file from
${
WEBSITE_PUBLIC_DIR
}
/
${
file
}
to
${
NPM_BINARY_DIR
}
/src/
${
file
}
"
)
endforeach
(
file
)
add_custom_target
(
copy_package_json_
${
PACKAGE_NAME
}
SOURCES
"
${
JSON_PACKAGE_SPECIFICATION
}
"
)
add_custom_target
(
download_npm_dependencies_
${
PACKAGE_NAME
}
SOURCES
"
${
NPM_BINARY_DIR
}
/package.json"
)
add_custom_target
(
packing_javascript_files_
${
PACKAGE_NAME
}
ALL
SOURCES
"
${
INSTALLED_SOURCE_FILES
}
"
"
${
INSTALLED_PUBLIC_FILES
}
"
"
${
NPM_BINARY_DIR
}
/node_modules"
"
${
NPM_BINARY_DIR
}
/package-lock.json"
)
add_custom_target
(
start_development_server_
${
PACKAGE_NAME
}
SOURCES
"
${
NPM_BINARY_DIR
}
/node_modules"
"
${
NPM_BINARY_DIR
}
/package-lock.json"
"
${
NPM_BINARY_DIR
}
/package.json"
COMMENT
"Start start_development_server for
${
PACKAGE_NAME
}
"
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/src"
COMMAND
${
CMAKE_COMMAND
}
-E copy_directory
${
WEBSITE_SOURCE_DIR
}
${
NPM_BINARY_DIR
}
/src
COMMENT
"Copying javascript src directory from
${
WEBSITE_SOURCE_DIR
}
to
${
NPM_BINARY_DIR
}
/src for
${
PACKAGE_NAME
}
"
)
COMMAND
${
CMAKE_COMMAND
}
-E make_directory
${
NPM_BINARY_DIR
}
/src
COMMENT
"Creating javascript src directory in
${
NPM_BINARY_DIR
}
/src for
${
PACKAGE_NAME
}
"
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/public"
COMMAND
${
CMAKE_COMMAND
}
-E
copy
_directory
${
WEBSITE_PUBLIC_DIR
}
${
NPM_BINARY_DIR
}
/public
COMMENT
"Copying public directory
${
WEBSITE_PUBLIC_DIR
}
to
${
NPM_BINARY_DIR
}
/public for
${
PACKAGE_NAME
}
"
)
OUTPUT
"
${
NPM_BINARY_DIR
}
/public"
COMMAND
${
CMAKE_COMMAND
}
-E
make
_directory
${
NPM_BINARY_DIR
}
/public
COMMENT
"Creating public directory
${
NPM_BINARY_DIR
}
/public
for
${
PACKAGE_NAME
}
"
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/node_modules"
"
${
NPM_BINARY_DIR
}
/package-lock.json"
COMMAND npm install
DEPENDS
"package.json"
WORKING_DIRECTORY
${
NPM_BINARY_DIR
}
DEPENDS
"
${
NPM_BINARY_DIR
}
/
package.json"
WORKING_DIRECTORY
"
${
NPM_BINARY_DIR
}
"
COMMENT
"Downloading npm dependencies for
${
NPM_BINARY_DIR
}
/package.json"
)
add_custom_command
(
TARGET start_development_server_
${
PACKAGE_NAME
}
COMMAND npm start
WORKING_DIRECTORY
${
NPM_BINARY_DIR
}
DEPENDS
${
INSTALLED_SOURCE_FILES
}
${
INSTALLED_PUBLIC_FILES
}
WORKING_DIRECTORY
"
${
NPM_BINARY_DIR
}
"
COMMENT
"Starting development server for
${
PACKAGE_NAME
}
"
)
add_custom_command
(
OUTPUT
"
${
NPM_BINARY_DIR
}
/build"
TARGET packing_javascript_files_
${
PACKAGE_NAME
}
COMMAND npm run build
DEPENDS copy_src_public_
${
PACKAGE_NAME
}
download_npm_dependencies_
${
PACKAGE_NAME
}
DEPENDS
"
${
INSTALLED_SOURCE_FILES
}
"
"
${
INSTALLED_PUBLIC_FILES
}
"
WORKING_DIRECTORY
"
${
NPM_BINARY_DIR
}
"
COMMENT
"Packing javascript files for
${
PACKAGE_NAME
}
into
${
NPM_BINARY_DIR
}
/build for deployment"
)
install
(
DIRECTORY
${
NPM_BINARY_DIR
}
/build/ DESTINATION
${
NPM_INSTALL_DESTINATION
}
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment