rename bootstrap to update
This commit is contained in:
parent
457c8a64b2
commit
3e4272cf14
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,7 +4,7 @@ __pycache__/
|
|||||||
# generated by unit tests
|
# generated by unit tests
|
||||||
test/*/CMakeLists.txt
|
test/*/CMakeLists.txt
|
||||||
test/*/build/
|
test/*/build/
|
||||||
test/*/cmake/bootstrap.py*
|
test/*/cmake/update.py*
|
||||||
test/*/cmake/lib/
|
test/*/cmake/lib/
|
||||||
test/*/cmake/modules/
|
test/*/cmake/modules/
|
||||||
test/*/setup.py
|
test/*/setup.py
|
||||||
|
@ -9,13 +9,13 @@ Autocmake assembles CMake modules, generates ``CMakeLists.txt`` as well as
|
|||||||
``setup.py``, which serves as a front-end to ``CMakeLists.txt``. All this is
|
``setup.py``, which serves as a front-end to ``CMakeLists.txt``. All this is
|
||||||
done based on a lightweight ``autocmake.cfg`` file::
|
done based on a lightweight ``autocmake.cfg`` file::
|
||||||
|
|
||||||
bootstrap.py --update
|
update.py --self
|
||||||
|
|
|
|
||||||
| fetches Autocmake infrastructure
|
| fetches Autocmake infrastructure
|
||||||
v
|
v
|
||||||
autocmake.cfg
|
autocmake.cfg
|
||||||
|
|
|
|
||||||
| bootstrap.py
|
| update.py
|
||||||
v
|
v
|
||||||
CMakeLists.txt (and setup.py front-end)
|
CMakeLists.txt (and setup.py front-end)
|
||||||
|
|
|
|
||||||
|
@ -3,19 +3,19 @@
|
|||||||
Bootstrapping a new project
|
Bootstrapping a new project
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Download the ``bootstrap.py`` and execute it to fetch other infrastructure files
|
Download the ``update.py`` and execute it to fetch other infrastructure files
|
||||||
which will be needed to build the project::
|
which will be needed to build the project::
|
||||||
|
|
||||||
mkdir cmake # does not have to be called "cmake" - take the name you prefer
|
mkdir cmake # does not have to be called "cmake" - take the name you prefer
|
||||||
cd cmake
|
cd cmake
|
||||||
wget https://github.com/scisoft/autocmake/raw/master/bootstrap.py
|
wget https://github.com/scisoft/autocmake/raw/master/update.py
|
||||||
python bootstrap.py --update
|
python update.py --self
|
||||||
|
|
||||||
This creates (or updates) the following files (an existing ``autocmake.cfg`` is
|
This creates (or updates) the following files (an existing ``autocmake.cfg`` is
|
||||||
not overwritten by the script)::
|
not overwritten by the script)::
|
||||||
|
|
||||||
cmake/
|
cmake/
|
||||||
bootstrap.py # no need to edit
|
update.py # no need to edit
|
||||||
autocmake.cfg # edit this file
|
autocmake.cfg # edit this file
|
||||||
lib/
|
lib/
|
||||||
config.py # no need to edit
|
config.py # no need to edit
|
||||||
|
@ -3,16 +3,16 @@
|
|||||||
Generating the CMake infrastructure
|
Generating the CMake infrastructure
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
Edit ``autocmake.cfg`` and run the ``bootstrap.py`` script which
|
Edit ``autocmake.cfg`` and run the ``update.py`` script which
|
||||||
creates ``CMakeLists.txt`` and ``setup.py`` in the build path::
|
creates ``CMakeLists.txt`` and ``setup.py`` in the build path::
|
||||||
|
|
||||||
python bootstrap.py ..
|
python update.py ..
|
||||||
|
|
||||||
The script also copies or downloads CMake modules specified in ``autocmake.cfg`` to a directory
|
The script also copies or downloads CMake modules specified in ``autocmake.cfg`` to a directory
|
||||||
called ``modules/``::
|
called ``modules/``::
|
||||||
|
|
||||||
cmake/
|
cmake/
|
||||||
bootstrap.py
|
update.py
|
||||||
autocmake.cfg
|
autocmake.cfg
|
||||||
lib/
|
lib/
|
||||||
config.py
|
config.py
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Customizing CMake modules
|
Customizing CMake modules
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
The ``boostrap.py`` script assembles modules listed in ``autocmake.cfg`` and
|
The ``update.py`` script assembles modules listed in ``autocmake.cfg`` and
|
||||||
places them inside ``modules/``. You have at least four options to customize
|
places them inside ``modules/``. You have at least four options to customize
|
||||||
CMake modules:
|
CMake modules:
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ Directly inside the generated modules directory
|
|||||||
|
|
||||||
The CMake modules can be customized directly inside ``modules/`` but this is
|
The CMake modules can be customized directly inside ``modules/`` but this is
|
||||||
the least elegant solution since the customizations may be overwritten by the
|
the least elegant solution since the customizations may be overwritten by the
|
||||||
``boostrap.py`` script (use version control).
|
``update.py`` script (use version control).
|
||||||
|
|
||||||
|
|
||||||
Adapt local copies of CMake modules
|
Adapt local copies of CMake modules
|
||||||
|
@ -7,7 +7,7 @@ Autocmake
|
|||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
about.rst
|
about.rst
|
||||||
bootstrap.rst
|
update.rst
|
||||||
cmakelists.rst
|
cmakelists.rst
|
||||||
customizing-modules.rst
|
customizing-modules.rst
|
||||||
updating-modules.rst
|
updating-modules.rst
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
Updating CMake modules
|
Updating CMake modules
|
||||||
======================
|
======================
|
||||||
|
|
||||||
To update CMake modules you need to run the ``boostrap.py`` script::
|
To update CMake modules you need to run the ``update.py`` script::
|
||||||
|
|
||||||
cd cmake
|
cd cmake
|
||||||
python bootstrap.py ..
|
python update.py ..
|
||||||
|
|
||||||
The CMake modules are not fetched or updated at configure time or build time.
|
The CMake modules are not fetched or updated at configure time or build time.
|
||||||
In other words, if you never re-run ``boostrap.py`` script and never modify the
|
In other words, if you never re-run ``update.py`` script and never modify the
|
||||||
CMake module files, then the CMake modules will remain forever frozen.
|
CMake module files, then the CMake modules will remain forever frozen.
|
||||||
|
|
||||||
|
|
||||||
|
12
test/test.py
12
test/test.py
@ -15,9 +15,9 @@ def exe(command):
|
|||||||
|
|
||||||
def test_cxx():
|
def test_cxx():
|
||||||
os.chdir(os.path.join(HERE, 'cxx', 'cmake'))
|
os.chdir(os.path.join(HERE, 'cxx', 'cmake'))
|
||||||
stdout, stderr = exe('wget https://github.com/scisoft/autocmake/raw/master/bootstrap.py')
|
stdout, stderr = exe('wget https://github.com/scisoft/autocmake/raw/master/update.py')
|
||||||
stdout, stderr = exe('python bootstrap.py --update')
|
stdout, stderr = exe('python update.py --self')
|
||||||
stdout, stderr = exe('python bootstrap.py ..')
|
stdout, stderr = exe('python update.py ..')
|
||||||
os.chdir(os.path.join(HERE, 'cxx'))
|
os.chdir(os.path.join(HERE, 'cxx'))
|
||||||
stdout, stderr = exe('python setup.py --cxx=g++')
|
stdout, stderr = exe('python setup.py --cxx=g++')
|
||||||
os.chdir(os.path.join(HERE, 'cxx', 'build'))
|
os.chdir(os.path.join(HERE, 'cxx', 'build'))
|
||||||
@ -29,9 +29,9 @@ def test_cxx():
|
|||||||
|
|
||||||
def test_fortran():
|
def test_fortran():
|
||||||
os.chdir(os.path.join(HERE, 'fortran', 'cmake'))
|
os.chdir(os.path.join(HERE, 'fortran', 'cmake'))
|
||||||
stdout, stderr = exe('wget https://github.com/scisoft/autocmake/raw/master/bootstrap.py')
|
stdout, stderr = exe('wget https://github.com/scisoft/autocmake/raw/master/update.py')
|
||||||
stdout, stderr = exe('python bootstrap.py --update')
|
stdout, stderr = exe('python update.py --self')
|
||||||
stdout, stderr = exe('python bootstrap.py ..')
|
stdout, stderr = exe('python update.py ..')
|
||||||
os.chdir(os.path.join(HERE, 'fortran'))
|
os.chdir(os.path.join(HERE, 'fortran'))
|
||||||
stdout, stderr = exe('python setup.py --fc=gfortran')
|
stdout, stderr = exe('python setup.py --fc=gfortran')
|
||||||
os.chdir(os.path.join(HERE, 'fortran', 'build'))
|
os.chdir(os.path.join(HERE, 'fortran', 'build'))
|
||||||
|
@ -265,18 +265,18 @@ def main(argv):
|
|||||||
Main function.
|
Main function.
|
||||||
"""
|
"""
|
||||||
if len(argv) != 2:
|
if len(argv) != 2:
|
||||||
sys.stderr.write("\nYou can bootstrap a project in two steps.\n\n")
|
sys.stderr.write("\nYou can update a project in two steps.\n\n")
|
||||||
sys.stderr.write("Step 1: Update or create infrastructure files\n")
|
sys.stderr.write("Step 1: Update or create infrastructure files\n")
|
||||||
sys.stderr.write(" which will be needed to configure and build the project:\n")
|
sys.stderr.write(" which will be needed to configure and build the project:\n")
|
||||||
sys.stderr.write(" $ %s --update\n\n" % argv[0])
|
sys.stderr.write(" $ %s --self\n\n" % argv[0])
|
||||||
sys.stderr.write("Step 2: Create CMakeLists.txt and setup.py in PROJECT_ROOT:\n")
|
sys.stderr.write("Step 2: Create CMakeLists.txt and setup.py in PROJECT_ROOT:\n")
|
||||||
sys.stderr.write(" $ %s <PROJECT_ROOT>\n" % argv[0])
|
sys.stderr.write(" $ %s <PROJECT_ROOT>\n" % argv[0])
|
||||||
sys.stderr.write(" example:\n")
|
sys.stderr.write(" example:\n")
|
||||||
sys.stderr.write(" $ %s ..\n" % argv[0])
|
sys.stderr.write(" $ %s ..\n" % argv[0])
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
||||||
if argv[1] == '--update':
|
if argv[1] == '--self':
|
||||||
# update infrastructure files
|
# update self
|
||||||
if not os.path.isfile('autocmake.cfg'):
|
if not os.path.isfile('autocmake.cfg'):
|
||||||
print('- fetching example autocmake.cfg')
|
print('- fetching example autocmake.cfg')
|
||||||
fetch_url(
|
fetch_url(
|
||||||
@ -293,10 +293,10 @@ def main(argv):
|
|||||||
src='https://github.com/docopt/docopt/raw/master/docopt.py',
|
src='https://github.com/docopt/docopt/raw/master/docopt.py',
|
||||||
dst='lib/docopt.py'
|
dst='lib/docopt.py'
|
||||||
)
|
)
|
||||||
print('- fetching bootstrap.py')
|
print('- fetching update.py')
|
||||||
fetch_url(
|
fetch_url(
|
||||||
src='%s/raw/master/bootstrap.py' % AUTOCMAKE_GITHUB_URL,
|
src='%s/raw/master/update.py' % AUTOCMAKE_GITHUB_URL,
|
||||||
dst='bootstrap.py'
|
dst='update.py'
|
||||||
)
|
)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user