summaryrefslogtreecommitdiff
path: root/package/pkg-cmake.mk
AgeCommit message (Collapse)Author
2016-10-22package/pkg-cmake.mk: move CMAKE_BUILD_TYPE definition into toolchainfile.cmakeSamuel Martin
The chosen CMAKE_BUILD_TYPE encodes an option of the Buildroot configuration, so it makes more sense to save it in the toolchainfile.cmake than to pass it during configure. It is still possible to override the build type on the cmake command line. Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: reword description in the CHANGES file.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-10-22Revert "package/cmake: with BR2_ENABLE_DEBUG use RelWithDebInfo"Samuel Martin
This reverts commit 4b0120183404913f7f7788ef4f0f6b51498ef363. Before reverting this patch, CMake packages are built with the following options: * if BR2_ENABLE_DEBUG is set: The CMake build type is set to RelWithDebInfo, which means: - Optimization level is forced to: -O2; - no log nor assert due to -DNDEBUG; - BR2_DEBUG_{1..3} effect is unchanged; * otherwise: The CMake build type is set to Release, which means: - Optimization level is forced to: -O3; - no log nor assert due to -DNDEBUG (as expected). In any case, the optimization WRT the binary size is always ignored and forced. Reverting to the previous situation, so Buildroot now chooses between the 'Debug' and 'Release' config types, which are semantically closer to what Buildroot does everywhere else: * if BR2_ENABLE_DEBUG is set: The CMake build type is set to Debug, which means: - only -g option is passed by CMake; - optimization is not forced, nor debug level, so they are kept as-is; * otherwise: The CMake build type is set to Release, so no change in this case: - Optimization level is forced to: -O3; - no log nor assert due to -DNDEBUG (as expected); - size optimization is ignored. Follow-up patches will fix the CMake flag variables that are appended by CMake. Cc: Charles Hardin <ckhardin@exablox.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-09-17core: don't build host-cmake if it is available on the build hostLuca Ceresoli
Currently all cmake packages depend on host-cmake. Unfortunately host-cmake takes a long time to configure and build: almost 7 minutes on a dual-core i5 with SSD. The time does not change even with ccache enabled. Indeed, building host-cmake is avoidable if it is already installed on the build host: CMake is supposed to be quite portable, and the only patch in Buildroot for the CMake package seems to only affect target-cmake. Thus we automatically skip building host-cmake and use the one on the system if: - cmake is available on the system and - it is recent enough. First, we leverage the existing infrastructure in support/dependencies/dependencies.mk to find out whether there's a suitable cmake executable on the system. Its path can be passed in the BR2_CMAKE environment variable, otherwise it defaults to "cmake". If it is enabled, found and suitable then we set BR2_CMAKE_HOST_DEPENDENCY to empty; otherwise we set BR2_CMAKE_HOST_DEPENDENCY to 'host-cmake' and override BR2_CMAKE with "$(HOST_DIR)/usr/bin/cmake" to revert to using our own cmake (the old behaviour). Then in pkg-cmake.mk we replace the hard-coded dependency on host-cmake to using the BR2_CMAKE_HOST_DEPENDENCY variable, and we use $(BR2_CMAKE) instead of $(HOST_DIR)/usr/bin/cmake. Unlike what we do for host-tar and host-xzcat, for host-cmake we do not add host-cmake to DEPENDENCIES_HOST_PREREQ. If we did, host-cmake would be a dependency for _any_ package when it's not installed on the host, even when no cmake package is selected. Cmake versions older than 3.0 are affected by the bug described and fixed in Buildroot in ef2c1970e4bf ("cmake: add patch to fix Qt mkspecs detection"). The bug was fixed in upstream CMake in version 3.0 [0]. Amongst all the cmake packages currently in Buildroot, the currently highest version mentioned in cmake_minimum_required() is 3.1 (grantlee and opencv3). Thus we use 3.1 as the lowest required cmake for now, until a package is bumped, or a new package added, with a higher required version. [0] https://cmake.org/gitweb?p=cmake.git;h=e8b8b37ef6fef094940d3384df5a1d421b9fa568 Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Davide Viti <zinosat@tiscali.it> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Tested-by: Romain Naour <romain.naour@gmail.com> [yann.morin.1998@free.fr: - simplify logic in check-host-cmake.mk; - set and use BR2_CMAKE_HOST_DEPENDENCY, drop USE_SYSTEM_CMAKE; - bump to cmake 3.1 for grantlee and opencv; ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-05cmake: move the host-pkgconf dependency from host-cmake to pkg-cmakeLuca Ceresoli
In 3d475ee0ba4d6eea6aca25594cfe5bb153ac804f a dependency on host-pkgconf was added to host-cmake. It is a workaround to fix build failures for packages that use pkgconf through a cmake module, but do not depend on host-pkgconf as they should. Since it is the package that needs host-pkgconf and not host-cmake itself, move the dependency to the proper place, in pkg-cmake.mk. Also copy the explanation on the mentioned commit as a comment in order to clarify why we do this. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Davide Viti <zinosat@tiscali.it> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> [Thomas: - update on top of master - drop empty HOST_CMAKE_DEPENDENCIES, no longer needed since host dependencies are no longer derived from target dependencies.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-03pkg-cmake.mk: export the fortran compiler path in the CMake toolchain fileSamuel Martin
Since the fortran support is conditional, only enable it when needed. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Benjamin Kamath <bkamath@spaceflight.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-03infra: remove auto derivation of host dependenciesJulien Floret
This feature consists in automatically deducing dependencies of a host package from the dependencies of the target variant. However, it causes some issues, and many host packages need different dependencies than their target variants. Now that host dependencies are explicitly set for all packages, we can remove it. Signed-off-by: Julien Floret <julien.floret@6wind.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-01package/cmake: with BR2_ENABLE_DEBUG use RelWithDebInfoCharles Hardin
>From the documentation on BR2_ENABLE_DEBUG, the intention is to get a build with debug symbols and not a "debug build" since that can have the unintended consequence of being a different code path then a release build type definition. Switch the "Debug" to "RelWithDebInfo" in the cmake package support to accomodate getting the debug symbols and still be a release build. Signed-off-by: Charles Hardin <ckhardin@exablox.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-10-04package-cmake: remove now-redundant target ccache supportArnout Vandecappelle
All the complexity with the different ways that CMAKE_C_COMPILER and CMAKE_C_COMPILER_ARG1 can be set are no longer needed, it's all handled by the toolchain wrapper now. Note that it is still necessary to handle this for the host build. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-09-22pkg-cmake: change sed expression delimiterGustavo Zacarias
Switch from : to # since CFLAGS can include :'s spilled in from BR2_TARGET_OPTIMIZATION, for example: BR2_TARGET_OPTIMIZATION="-Wl,-rpath,/lib:/usr/lib" would cause the sed expression to fail thus breaking the build. Signed-off-by: Gustavo Zacarias <gustavo.zacarias@free-electrons.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-14skeleton: New packageMaxime Hadjinlian
Create a proper package for the skeleton. The main Makefile is modified to remove the skeleton support. The 'dirs' target, will create the $(TARGET_DIR). The file 'output/target/.root' doesn't exists anymore, as there's no Make rule to statisfy. The infrastructure are modified to filter host-skeleton. It's needed becauses the host-dependencies are derived from the dependencies of the target package where 'host-' is preprended to the depedency name. In the pkg-generic we add skeleton as a dependency to every package. The whole system/system.mk is now removed at the profit of package/skeleton/skeleton.mk [Thomas: - rebase on top of master and fix some minor conflicts - remove the 'select BR2_PACKAGE_SKELETON' in BR2_ROOTFS_SKELETON_DEFAULT and BR2_ROOTFS_SKELETON_CUSTOM, since anyway the skeleton package is always enabled. - fixup a few mistakes in the getty handling due to misnamed variables.] Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-23pkg-cmake: Skip compilation in installation stepCédric Marie
With CMake build system, the "make install" command always compiles before installing, to make sure that everything is up-to-date. In Buildroot environment, this is quite useless, because the package has always already been compiled, either at first build, or when invoking "make <package>-rebuild". In all cases, when it comes to staging or target installation step, the package has just been compiled. Using "make install/fast" - in order to skip the compilation step - is therefore more appropriate, more consistent with what other build systems do, and saves time when you need to rebuild your package. Signed-off-by: Cédric Marie <cedric.marie@openmailbox.org> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-13pkg-cmake: allow to build package in a subdirectoryGwenhael Goavec-Merou
For some cmake based packages, like GNURadio, it's forbidden to do the compilation directly in the sources directory. This patch add a new variable to specify, if needed, the name of a sub-directory used to compile. [Thomas: put the documentation at the right place in the manual, not in the middle of the <pkg>_CONF_OPTS description.] Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-02Merge branch 'next'Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-19pkg-cmake.mk: Fix ARM variant typoAssaf Inbal
Signed-off-by: Assaf Inbal <shmuelzon@gmail.com> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-02-14pkg-cmake: reduce output when being silentFabio Porcedda
Use CMAKE_RULE_MESSAGES and CMAKE_INSTALL_MESSAGE variables to reduce cmake output when it is a silent build. [Thomas: - use ifneq instead of ifdef - remove unneeded else clause - also add to the host variant of the configure commands] Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-01-25pkg-cmake: fix host-cmake-package typeRyan Barnett
When trying to compile a host-cmake-package type such as host-cdrkit, an error happens in regards to HOSTCC and HOSTCXX not being found. /bin/sh: HOSTCC: command not found /bin/sh: HOSTCXX: command not found This due to the fact that the environment is incorrectly configured by having the following: -DCMAKE_C_COMPILER=""$(HOSTCC)"" -DCMAKE_CXX_COMPILER=""$(HOSTCXX)"" This is due to having too many dollar signs. The fix is to remove the extra dollar sign. Also removing the unncessary quotes since the HOSTCC/HOSTCXX will already contain quotes. This could cause an issue with make as double quotes are not interpreted by make. Minor formatting fix too. Signed-off-by: Ryan Barnett <ryan.barnett@rockwellcollins.com> Acked-by: Samuel Martin <s.martin49@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-21package/pkg-cmake.mk: add ccache support for host packagesSamuel Martin
This ccache support for host-cmake-package uses the same logic as the one done for the target packages in the toolchainfile.cmake file. [Thomas: fix lots of mistakes.] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-11Rename BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBSThomas Petazzoni
Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed from "prefer static libraries when possible" to "use only static libraries". The former semantic didn't make much sense, since the user had absolutely no control/idea of which package would use static libraries, and which packages would not. Therefore, for quite some time, we have been starting to enforce that BR2_PREFER_STATIC_LIB should really build everything with static libraries. As a consequence, this patch renames BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS, and adjust the Config.in option accordingly. This also helps preparing the addition of other options to select shared, shared+static or just static. Note that we have verified that this commit can be reproduced by simply doing a global rename of BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-12-09pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.Volker Krause
This is rarely needed by packages, but convenient to have when it is. [Thomas: - don't define ARM_VARIANT as this name is too global, use CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT instead. - don't use ifndef, but a more traditional else clause, for the non-ARM cases.] Signed-off-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Bernd Kuhls <bernd.kuhls@t-online.de> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-26package/pkg-cmake.mk: disable colouring the outputSamuel Martin
Because cmake was the only build-system supporting this feature, it has been disabled for the target packages. For consistency, this patch does the same for host package too. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-26package/pkg-cmake.mk: globally disable doc, examples and testsSamuel Martin
This patch globally disables doc, examples and tests build for both the target and host packages. If needed, these configure flags can be overloaded in the per-package *_CONF_OPTS variables. This makes the cmake-package infrastructure even closer to the autotools one. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04package/pkg-cmake.mk: rename _INSTALL_HOST_OPTS -> _INSTALL_OPTSSamuel Martin
This patch renames, consistently with the other package infrastructures, the _INSTALL_OPTS variable for host CMake-based package. As mentioned in [1], no host-cmake-package uses this variable so far; so it is a safe rename. [1] http://lists.busybox.net/pipermail/buildroot/2014-October/107712.html Reported-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04packages: rename FOO_CONF_OPT into FOO_CONF_OPTSThomas De Schampheleire
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS, make the same change for FOO_CONF_OPT. Sed command used: find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g' Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04packages: rename FOO_INSTALL_HOST_OPT into FOO_INSTALL_HOST_OPTSThomas De Schampheleire
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS, make the same change for FOO_INSTALL_HOST_OPT. Sed command used: find * -type f | xargs sed -i 's#_INSTALL_HOST_OPT\>#&S#g' Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04packages: rename FOO_INSTALL_STAGING_OPT into FOO_INSTALL_STAGING_OPTSThomas De Schampheleire
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS, make the same change for FOO_INSTALL_STAGING_OPT. Sed command used: find * -type f | xargs sed -i 's#_INSTALL_STAGING_OPT\>#&S#g' Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04packages: rename FOO_INSTALL_TARGET_OPT into FOO_INSTALL_TARGET_OPTSThomas De Schampheleire
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS, make the same change for FOO_INSTALL_TARGET_OPT. Sed command used: find * -type f | xargs sed -i 's#_INSTALL_TARGET_OPT\>#&S#g' Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-10-04packages: rename FOO_MAKE_OPT into FOO_MAKE_OPTSThomas De Schampheleire
While the autotools infrastructure was using FOO_MAKE_OPT, generic packages were typically using FOO_MAKE_OPTS. This inconsistency becomes a problem when a new infrastructure is introduced that wants to make use of FOO_MAKE_OPT(S), and can live alongside either generic-package or autotools-package. The new infrastructure will have to choose between either OPT or OPTS, and thus rule out transparent usage by respectively generic packages or generic packages. An example of such an infrastructure is kconfig-package, which provides kconfig-related make targets. The OPTS variant is more logical, as there are typically multiple options. This patch renames all occurrences of FOO_MAKE_OPT in FOO_MAKE_OPTS. Sed command used: find * -type f | xargs sed -i 's#_MAKE_OPT\>#&S#g' Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-09-28toolchainfile.cmake.in: set linker flagsSamuel Martin
The linker flags are part of the toolchain configuration, so set them for the CMake-based packages. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-28package/pkg-cmake.mk: set the {C, CXX, LD}FLAGS for host packagesSamuel Martin
Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-09-28package/pkg-cmake.mk: remove the USE_CCACHE CMake flag for host-packageSamuel Martin
The USE_CCACHE CMake flag is only useful when building target package (only the toolchainfile.cmake uses it). Signed-off-by: Samuel Martin <s.martin49@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-07-24trivial: fix typo 'informations'Thomas De Schampheleire
In English, unlike in French, almost all usages of the word 'information' are uncountable, meaning that 'informations' is invalid. This patch fixes this typo throughout the tree, except in CHANGES and docs/news.html (historic text). Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-24trivial: fix typo 'an host'Thomas De Schampheleire
In English, unlike in French, the 'h' in 'host' is pronounced, meaning that the article should be 'a' instead of 'an'. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-06-14infra: consistently use double dollar signs inside inner-xxx-targetsThomas De Schampheleire
The inner-xxx-targets in the buildroot package infrastructures are evaluated using $(eval) which causes variable references to be a bit different than in regular make code. As we want most references to be expanded only at the time of the $(eval) we should not use standard references $(VAR) but rather use double dollar signs $$(VAR). This includes function references like $(call), $(subst), etc. The only exception is the reference to pkgdir/pkgname and numbered variables, which are parameters to the inner block: $(1), $(2), etc. This patch introduces consistent usage of double-dollar signs throughout the different inner-xxx-targets blocks. In some cases, this would potentially cause circular references, in particular when the value of HOST_FOO_VAR would be obtained from the corresponding FOO_VAR if HOST_FOO_VAR is not defined. In these cases, a test is added to check for a host package (the only case where such constructions are relevant; these are not circular). Benefits of these changes are: - behavior of variables is now again as expected. For example, setting $(2)_VERSION = virtual in pkg-virtual.mk will effectively work, while originally it would cause very odd results. - The output of 'make printvars' is now much more useful. This target shows the value of all variables, and the expression that led to that value. However, if the expression was coming from an inner-xxx-targets block, and was using single dollar signs, it would show in printvars as VAR = value (value) while if double dollar signs are used, it would effectively look like VAR = value (actual expression) as is intended. This improvement is for example effective for FOO_DL_VERSION, FOO_RAWNAME, FOO_SITE_METHOD and FOO_MAKE. The correctness of this patch has been verified using 'make printvars', 'make manual' and 'make legal-info' before and after applying this patch, and comparing the output. Insight-provided-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-06-01pkg-cmake.mk: globally drive the CMAKE_BUILD_TYPE flag using BR2_ENABLE_DEBUGSamuel Martin
This CMake flag is usually used to adjust compiler flags (like: -Ox, -g, etc). So, it makes sense for Buildroot to globally drive this CMake flags in the cmake-package infrastructure. However, if a package prefer overriding this default setting, it still can via the <PKG>_CONF_OPT variable. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-06-01pkg-cmake.mk: globally disable BUILD_TESTING flagSamuel Martin
This CMake flag is used to enable tests. It may not disable the test programs from being built, but it controls the test execution. Since we don't care about building the tests (and usually disable them when possible), make sure Buildroot won't try to run them. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-06-01pkg-cmake.mk: enable ccache for cmake packagesSamuel Martin
This patch updates the generated toolchainfile.cmake to use ccache. When toolchainfile.cmake is used inside Buildroot, using ccache during the build is driven by a CMake knob: USE_CCACHE, automatically set by the cmake-package infrastructure and reflecting the BR2_CCACHE value. Since this toolchainefile.cmake file can be used outside Buildroot, and this file also set a couple of things (among these: the sysroot cflag, some pkg-config environment variables), it is important to set the compiler variables as well to keep the consistency of the cross-compilation configuration. So, when it is used outside Buildroot, using ccache for the build is driven by the ccache program availability. Note that using ccache for the build is achieved by setting the *_ARG1 CMake variables to let CMake use ccache without failing in detecting the compiler. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-06-01pkg-cmake.mk: do not hardcode absolute path in toolchainfile.cmakeSamuel Martin
The patch allows sharing or moving the toolchains. This is a step toward making the toolchain/sdk relocatable. Closes #6818 [Peter: reword comment as suggested by Thomas] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Uwe Strempel <u.strempel@googlemail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-06-01pkg-cmake.mk: refactor the toolchainfile.cmake generationSamuel Martin
This patch introduces a toolchainfile.cmake.in template which is filled by Buildroot. Using a toolchainfile.cmake.in template file allows to avoid overloading quoting and/or escaping and it becomes much more similar to the resulting file. This patch also cleans up the quoting style. [Peter: drop stdin redirect as suggested by Thomas] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-04-24pkg-cmake.mk: replace "echo -en" with printfSamuel Martin
printf is POSIX-compliant, echo -e is not. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-04-16pkg-cmake.mk: add PATH in the configure command environmentSamuel Martin
Because BR_PATH is not exported in the environment beforehand running cmake, it is necessary to add it on the cmake configure command. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-02-14package: add toolchain dependency to every target packageFabio Porcedda
This commit makes the dependency from the target toolchain explicit. This way we can buid from command line a package that use inner-generic-package right after the configuration phase, example: make clean <package-name> Also remove TARGETS_ALL because the only purpose was to add toolchain dependency so it's superseded by this commit. To prevent circular dependency add the new variable <pkgname>_ADD_TOOLCHAIN_DEPENDENCY to avoid adding the toolchain dependency for toolchain packages. This is also a step forward supporting top-level parallel make. Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-05infra: remove unused 4th parameter to package infrastructures (pkgparentdir)Thomas De Schampheleire
The fourth parameter to inner-generic-package is no longer used. Removing this parameters requires renaming all usages of $(5) to $(4), and updating the calls to inner-generic-package (and equivalent for the other package infrastructures). Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-05infra: remove redundant $(call) on pkgdir, pkgname, pkgparentdirThomas De Schampheleire
When calling make 'functions', the $(call) keyword is only needed if the function takes arguments. For pkgdir, pkgname and pkgparentdir this is not the case, so we can remove the call to make things more readable. Suggested-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-28package/pkg-cmake: disable colouring the outputYann E. MORIN
cmake is the only build-system we support that does colour its output, Also, since parallel builds generates intermixed output lines, it makes for ugly-looking output. Just disable cmake colouring globally. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-22pkg-cmake.mk: build shared library when !BR2_PREFER_STATIC_LIBSamuel Martin
CMake offers a couple of places where one can specify how to build a library: - when you create the library target itself, by calling add_library(target [SHARED|STATIC] ...) - or globally, when you configure the build, by setting the BUILD_SHARED_LIBS CMake flag. * if the library target kind of library is specified: it overrides the global setting BUILD_SHARED_LIBS; * else, if the global setting BUILD_SHARED_LIBS is set: it builds according to the BUILD_SHARED_LIBS flags; * otherwise: for linux, it will build static library (like BUILD_SHARED_LIBS default is OFF). So, we can consider the setting BUILD_SHARED_LIBS acts a bit similarly to the autotools ones '--disable-static' and '--enable-shared'. Thus, it makes sense for Buildroot to globally drive to CMake flags in the cmake-package infrastructure. It seems we never trigger this so far because: - either we specified it in the *.mk file (e.g. opencv.mk); - or it was already set per target by the projects' upstreams. Followup patches will clean the remaining BUILD_SHARED_LIBS in the package *.mk files. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-12-08infra: remove package clean commandsThomas De Schampheleire
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-12-06infra: remove uninstall commandsThomas De Schampheleire
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-09-13package: remove the empty trailing linesJerzy Grzegorek
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-07-22pkg-*targets.mk: factorize and fix $(PKG)_SRCDIR and $(PKG)_BUILDDIR declarationSamuel Martin
Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-17Clean up naming of old GENTARGETS infrastructureArnout Vandecappelle (Essensium/Mind)
With the renaming of XXXTARGETS to xxx-package, the names of the pkg-xxx.mk files is inconsistent, as well as some internal names in the documentation. These inconsistencies are cleaned up here. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> ...kages-autotargets.txt => adding-packages-autotools.txt} | 4 ++-- ...packages-cmaketargets.txt => adding-packages-cmake.txt} | 4 ++-- docs/manual/adding-packages-directory.txt | 12 ++++++------ ...packages-gentargets.txt => adding-packages-generic.txt} | 4 ++-- docs/manual/adding-packages.txt | 6 +++--- package/Makefile.in | 6 +++--- package/{pkg-autotargets.mk => pkg-autotools.mk} | 0 package/{pkg-cmaketargets.mk => pkg-cmake.mk} | 0 package/{pkg-gentargets.mk => pkg-generic.mk} | 0 9 files changed, 18 insertions(+), 18 deletions(-) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>