celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pepijn Noltes <pepijnnol...@gmail.com>
Subject Updated CMake bundle and deploy commands
Date Thu, 04 Feb 2016 13:44:37 GMT
Hi All,

I have been working on a revamp of the Celix specific CMake commands. The
main reason to do this was to get rid of the deploy.cmake files.
At the moment these files are needed when you want to create a "deployment"
of a selection of bundes.
One of the problems is that even if you disabled a certain subdirectory the
deploy.cmake in that directory will still be processed. To counter this
additional CMake code is needed.

To solve this and some other issues I rewrote the Packaging.cmake so that
to process is more based on CMake target properties [1] and CMake generator
expressions [2]. I also took the liberty to split up and rename the
commands in a more CMake style (e.g. add_<target_type> commands)

Differences are
- No separate deploy.cmake needed. You can use add_deploy in normal
CMakeLists.txt files. Also as result no additional test concerning
subprojects are needed.
- bundle command has become add_bundle command
- deploy command has become add_deploy command
- possibility to create multiple bundles in one CMakeLists.txt file.
- There are several supporting CMake commands for add_bundle and add_deploy
- version info of bundle also used for so version information
- libcelix_framework, libcelix_utils and libcelix_dfi are now generated
with a so version.
- Added CMake commands are documented in documents dir, see [3]
- Legacy wrapper command for bundle -> add_bundle and deploy-> add_deploy
exists. Supporting most, but not all old features.
- For the Celix project all existing bundle commands and deploy.cmake files
are updated to the new commands
- If jar or zip command is present on the host system, make install can be
used. If not make install-all (CPack) must be used. CMake will generate a
message for this.
- add_deploy supports adding not yet existing bundle targets. Removing the
need for certain add_bundle ordering.
- support for Ninja and "make -j"
- Moved and updated the "Apache Celix Subprojects", "building Apache Celix"
and "Getting Started with Apache Celix" to the documents dir, see [4]. [5]
and [6]

If there are no objections I would like to merge this feature into the
development branch.
The documentation still needs some work and there are probably still some
bugs. but I would prefer to push this in preparation of a next Celix
release.

[1] https://cmake.org/cmake/help/v3.4/command/set_target_properties.html
[2]
https://cmake.org/cmake/help/v3.4/manual/cmake-generator-expressions.7.html?highlight=generator
[3]
https://github.com/apache/celix/blob/feature/CELIX-335_deploy_refactoring/documents/cmake_commands/readme.md
[4]
https://github.com/apache/celix/tree/feature/CELIX-335_deploy_refactoring/documents/subprojects
[5]
https://github.com/apache/celix/tree/feature/CELIX-335_deploy_refactoring/documents/building
[6]
https://github.com/apache/celix/tree/feature/CELIX-335_deploy_refactoring/documents/getting_started


Greetings,
Pepijn

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message