Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
athena
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue 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
Mark Hodgkinson
athena
Commits
96ccd82d
Commit
96ccd82d
authored
7 years ago
by
Emmanuel Le Guirriec
Browse files
Options
Downloads
Patches
Plain Diff
Not in my git
parent
579b7d65
Loading
Loading
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Projects/WorkDir/CMakeLists.txt
+68
-0
68 additions, 0 deletions
Projects/WorkDir/CMakeLists.txt
Projects/WorkDir/README.md
+53
-0
53 additions, 0 deletions
Projects/WorkDir/README.md
Projects/WorkDir/package_filters_example.txt
+19
-0
19 additions, 0 deletions
Projects/WorkDir/package_filters_example.txt
with
140 additions
and
0 deletions
Projects/WorkDir/CMakeLists.txt
0 → 100644
+
68
−
0
View file @
96ccd82d
#
# Project file for building a selected set of packages against an
# installed ATLAS release/nightly.
#
# Set the minimum required CMake version:
cmake_minimum_required
(
VERSION 3.2 FATAL_ERROR
)
# Let the user pick up updated AtlasCMake/AtlasLCG versions for testing.
# Remember that it's not a problem if AtlasCMake is not found, that's why
# we use the QUIET keyword.
find_package
(
AtlasCMake QUIET
)
# Try to figure out what project is our parent. Just using a hard-coded list
# of possible project names. Basically the names of all the other
# sub-directories inside the Projects/ directory in the repository.
set
(
_parentProjectNames Athena AthenaP1 AnalysisBase AthAnalysisBase
AthSimulation
)
set
(
_defaultParentProject Athena
)
set
(
_defaultUseFortran TRUE
)
foreach
(
_pp
${
_parentProjectNames
}
)
if
(
NOT
"$ENV{
${
_pp
}
_DIR}"
STREQUAL
""
)
set
(
_defaultParentProject
${
_pp
}
)
# Only turn off Fortran support for the AnalysisBase project for now:
if
(
"
${
_pp
}
"
STREQUAL
"AnalysisBase"
)
set
(
_defaultUseFortran FALSE
)
endif
()
break
()
endif
()
endforeach
()
# Set the parent project name based on the previous findings:
set
(
ATLAS_PROJECT
${
_defaultParentProject
}
CACHE STRING
"The name of the parent project to build against"
)
# Set whether to use Fortran, based on the previous simple logic:
option
(
ATLAS_USE_FORTRAN
"Whether the WorkDir project should provide support for Fortran"
${
_defaultUseFortran
}
)
# Clean up:
unset
(
_parentProjectNames
)
unset
(
_defaultParentProject
)
unset
(
_defaultUseFortran
)
# Find the project that we depend on:
find_package
(
${
ATLAS_PROJECT
}
REQUIRED
)
# Set up CTest:
atlas_ctest_setup
()
# Set up a work directory project:
set
(
_useFortran
)
if
(
ATLAS_USE_FORTRAN
)
set
(
_useFortran FORTRAN
)
endif
()
atlas_project
(
WorkDir
${${
ATLAS_PROJECT
}
_VERSION
}
USE
${
ATLAS_PROJECT
}
${${
ATLAS_PROJECT
}
_VERSION
}
PROJECT_ROOT
${
CMAKE_SOURCE_DIR
}
/../..
${
_useFortran
}
)
unset
(
_useFortran
)
# Set up the runtime environment setup script(s):
lcg_generate_env
(
SH_FILE
${
CMAKE_BINARY_DIR
}
/
${
ATLAS_PLATFORM
}
/env_setup.sh
)
install
(
FILES
${
CMAKE_BINARY_DIR
}
/
${
ATLAS_PLATFORM
}
/env_setup.sh
DESTINATION .
)
# Set up CPack:
atlas_cpack_setup
()
This diff is collapsed.
Click to expand it.
Projects/WorkDir/README.md
0 → 100644
+
53
−
0
View file @
96ccd82d
ATLAS WorkDir Project
=====================
This project can be used to build just a few packages from the repository
against an installed ATLAS release/nightly. That means any base project,
offline, trigger, simulation or analysis.
The project can be used in two ways.
Using a fully checked out repository
------------------------------------
If you have the entire
`athena`
repository checked out, you need to tell
the CMake configuration which packages you actually want to build. Otherwise
it will go ahead and attempt to build everything. Even packages not part of
the selected base release itself.
You should make a copy of the
`package_filters_example.txt`
file found in
this directory, and modify it to select the packages you're interested in,
for compilation. There is some documentation in the file explaining its
format.
Then, configure the build of the project like:
asetup ...
mkdir build
cd build/
cmake -DATLAS_PACKAGE_FILTER_FILE=/your/specific/package_filters.txt \
../athena/Projects/WorkDir/
Using a partially checked out repository
----------------------------------------
If you only checked out the packages that you want to compile, along with
this
`Projects/WorkDir`
directory, then you don't need to worry about
setting up a package filtering file. You can simply just do:
asetup ...
mkdir build
cd build/
cmake ../athena/Projects/WorkDir/
This will set up the build of all checked out packages.
Using the local build
---------------------
After being done with the build, you have to remember to source the
`setup.sh`
file of the build area to pick up your modifications! So, you
would do something like this to set up your runtime environment from scratch:
asetup ...
source build/x86_64-slc6-gcc49-opt/setup.sh
This diff is collapsed.
Click to expand it.
Projects/WorkDir/package_filters_example.txt
0 → 100644
+
19
−
0
View file @
96ccd82d
#
# This is an example file for setting up which packages to pick up
# for a sparse build, when you have a full checkout of the repository,
# but only wish to rebuild some packages.
#
# The syntax is very simple:
#
# + REGEXP will include the package in the build
# - REGEXP will exclude the package from the build
#
# The first match against the package path wins, so list
# more specific matches above more general ones.
#
# Note that when you use git-atlas to make a sparse checkout, you will
# only have the packages available that you want to compile anyway.
# So in that case you should not bother with using such a filter file.
#
+ Control/AthenaExamples/AthExHelloWorld
- .*
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