pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.
PATCH v3 1/1 pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.
This is rarely needed by packages, but convenient to have when it is.
---
Changes v2 -> v3:
- fixed endianess handling for ARM v4-v7
- coding style
Changes v1 -> v2:
- added missing qstrip
- set the correct ARM variant as done in
http://patchwork.ozlabs.org/patch/408501/
package/pkg-cmake.mk | 22 ++++++++++++++++++++++ support/misc/toolchainfile.cmake.in | 1 + 2 files changed, 23 insertions(+)
package/pkg-cmake.mk +22 -0
@@ -180,6 +180,27 @@ host-cmake-package = $(call inner-cmake-package,host-$(pkgname),$(call UPPERCASE # Generation of the CMake toolchain file ################################################################################ +# CMAKE_SYSTEM_PROCESSOR should match uname -m +ifeq ($(BR2_ARM_CPU_ARMV4),y) +ARM_VARIANT = armv4 +else ifeq ($(BR2_ARM_CPU_ARMV5),y) +ARM_VARIANT = armv5 +else ifeq ($(BR2_ARM_CPU_ARMV6),y) +ARM_VARIANT = armv6 +else ifeq ($(BR2_ARM_CPU_ARMV7A),y) +ARM_VARIANT = armv7 +endif + +ifeq ($(BR2_arm),y) +CMAKE_SYSTEM_PROCESSOR = $(ARM_VARIANT)l +else ifeq ($(BR2_armeb),y) +CMAKE_SYSTEM_PROCESSOR = $(ARM_VARIANT)b +endif + +ifndef CMAKE_SYSTEM_PROCESSOR +CMAKE_SYSTEM_PROCESSOR = $(BR2_ARCH) +endif + # In order to allow the toolchain to be relocated, we calculate the HOST_DIR # based on the toolchainfile.cmake file's location: $(HOST_DIR)/usr/share/buildroot # In all the other variables, HOST_DIR will be replaced by RELOCATED_HOST_DIR,
@@ -193,5 +214,6 @@ $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake: -e 's:@@TARGET_LDFLAGS@@:$(call qstrip,$(TARGET_LDFLAGS)):' \ -e 's:@@TARGET_CC_NOCCACHE@@:$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_CC_NOCCACHE))):' \ -e 's:@@TARGET_CXX_NOCCACHE@@:$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_CXX_NOCCACHE))):' \ + -e 's:@@CMAKE_SYSTEM_PROCESSOR@@:$(call qstrip,$(CMAKE_SYSTEM_PROCESSOR)):' \ $(TOPDIR)/support/misc/toolchainfile.cmake.in \ > $@
support/misc/toolchainfile.cmake.in +1 -0
@@ -11,6 +11,7 @@ string(REPLACE "/usr/share/buildroot" "" RELOCATED_HOST_DIR ${CMAKE_CURRENT_LIST_DIR}) set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR @@CMAKE_SYSTEM_PROCESSOR@@) set(CMAKE_C_FLAGS "@@TARGET_CFLAGS@@ ${CMAKE_C_FLAGS}" CACHE STRING "Buildroot CFLAGS") set(CMAKE_CXX_FLAGS "@@TARGET_CXXFLAGS@@ ${CMAKE_CXX_FLAGS}" CACHE STRING "Buildroot CXXFLAGS")
Signature · 1 line
1.8.4.5
PATCH v3 1/1 pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.
Volker Krause <[email protected]> wrote in news:1416254561-12691-1-git-send-email-volker.krause at kdab.com:
Hi,
your patch works with my proposed x265 package, therefore:
I uploaded v2 of my x265 patch set which depends on your patch.
Regards, Bernd
PATCH v3 1/1 pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.
In reply to Volker KrauseHi Volker,
Le 17/11/2014 21:02, Volker Krause a ?crit :
Quoted 8 lines
This is rarely needed by packages, but convenient to have when it is.
Signed-off-by Volker Krause <[email protected]>---
Changes v2 -> v3:
- fixed endianess handling for ARM v4-v7
- coding style
Quoted 5 lines
Changes v1 -> v2:
- added missing qstrip
- set the correct ARM variant as done inhttp://patchwork.ozlabs.org/patch/408501/
Openpowerlink package compiled with your patch and [1] applied.
[1] http://patchwork.ozlabs.org/patch/413219/
Best regards,
Romain
PATCH v3 1/1 pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.
In reply to Volker KrauseQuoted 3 lines · Volker Krause
This is rarely needed by packages, but convenient to have when it is.
Signed-off-by Volker Krause <[email protected]>
Quoted 72 lines
---
Changes v2 -> v3:
- fixed endianess handling for ARM v4-v7
- coding styleChanges v1 -> v2:
- added missing qstrip
- set the correct ARM variant as done inhttp://patchwork.ozlabs.org/patch/408501/package/pkg-cmake.mk | 22 ++++++++++++++++++++++ support/misc/toolchainfile.cmake.in | 1 + 2 files changed, 23 insertions(+)package/pkg-cmake.mk +22
-0@@ -180,6 +180,27 @@ host-cmake-package = $(call inner-cmake-package,host-$(pkgname),$(call UPPERCASE # Generation of the CMake toolchain file ################################################################################ +# CMAKE_SYSTEM_PROCESSOR should match uname -m +ifeq ($(BR2_ARM_CPU_ARMV4),y) +ARM_VARIANT = armv4 +else ifeq ($(BR2_ARM_CPU_ARMV5),y) +ARM_VARIANT = armv5 +else ifeq ($(BR2_ARM_CPU_ARMV6),y) +ARM_VARIANT = armv6 +else ifeq ($(BR2_ARM_CPU_ARMV7A),y) +ARM_VARIANT = armv7 +endif + +ifeq ($(BR2_arm),y) +CMAKE_SYSTEM_PROCESSOR = $(ARM_VARIANT)l +else ifeq ($(BR2_armeb),y) +CMAKE_SYSTEM_PROCESSOR = $(ARM_VARIANT)b +endif + +ifndef CMAKE_SYSTEM_PROCESSOR +CMAKE_SYSTEM_PROCESSOR = $(BR2_ARCH) +endif + # In order to allow the toolchain to be relocated, we calculate the HOST_DIR # based on the toolchainfile.cmake file's location: $(HOST_DIR)/usr/share/buildroot # In all the other variables, HOST_DIR will be replaced by RELOCATED_HOST_DIR,@@ -193,5 +214,6 @@ $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake: -e 's:@@TARGET_LDFLAGS@@:$(call qstrip,$(TARGET_LDFLAGS)):' \ -e 's:@@TARGET_CC_NOCCACHE@@:$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_CC_NOCCACHE))):' \ -e 's:@@TARGET_CXX_NOCCACHE@@:$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_CXX_NOCCACHE))):' \ + -e 's:@@CMAKE_SYSTEM_PROCESSOR@@:$(call qstrip,$(CMAKE_SYSTEM_PROCESSOR)):' \ $(TOPDIR)/support/misc/toolchainfile.cmake.in \ > $@support/misc/toolchainfile.cmake.in +1
-1@@ -11,6 +11,7 @@ string(REPLACE "/usr/share/buildroot" "" RELOCATED_HOST_DIR ${CMAKE_CURRENT_LIST_DIR}) set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR @@CMAKE_SYSTEM_PROCESSOR@@) set(CMAKE_C_FLAGS "@@TARGET_CFLAGS@@ ${CMAKE_C_FLAGS}" CACHE STRING "Buildroot CFLAGS") set(CMAKE_CXX_FLAGS "@@TARGET_CXXFLAGS@@ ${CMAKE_CXX_FLAGS}" CACHE STRING "Buildroot CXXFLAGS") --1.8.4.5
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 1 line
Samuel
PATCH v3 1/1 pkg-cmake.mk: Set CMAKE_SYSTEM_PROCESSOR.
In reply to Volker KrauseDear Volker Krause,
Quoted 3 lines · Volker Krause
This is rarely needed by packages, but convenient to have when it is.
Signed-off-by Volker Krause <[email protected]>
Thanks, I've applied your patch, with a few changes (see below).
package/pkg-cmake.mk host-cmake-package = $(call inner-cmake-package,host-$(pkgname),$(call UPPERCASE · line 192
Quoted 10 lines
package/pkg-cmake.mk +10
-0+# CMAKE_SYSTEM_PROCESSOR should match uname -m +ifeq ($(BR2_ARM_CPU_ARMV4),y) +ARM_VARIANT = armv4 +else ifeq ($(BR2_ARM_CPU_ARMV5),y) +ARM_VARIANT = armv5 +else ifeq ($(BR2_ARM_CPU_ARMV6),y) +ARM_VARIANT = armv6 +else ifeq ($(BR2_ARM_CPU_ARMV7A),y) +ARM_VARIANT = armv7 +endif
The namespace of variables is global, and we don't want pkg-cmake.mk to define a variable with a name as "global" as ARM_VARIANT. So I've renamed this variable to CMAKE_SYSTEM_PROCESSOR_ARM_VARIANT.
package/pkg-cmake.mk host-cmake-package = $(call inner-cmake-package,host-$(pkgname),$(call UPPERCASE · line 202
Quoted 10 lines
package/pkg-cmake.mk +10
-0+ +ifeq ($(BR2_arm),y) +CMAKE_SYSTEM_PROCESSOR = $(ARM_VARIANT)l +else ifeq ($(BR2_armeb),y) +CMAKE_SYSTEM_PROCESSOR = $(ARM_VARIANT)b +endif + +ifndef CMAKE_SYSTEM_PROCESSOR +CMAKE_SYSTEM_PROCESSOR = $(BR2_ARCH) +endif
I've changed this to the more logical (IMO):
ifeq ($(BR2_arm),y)
...
else ifeq ($(BR2_armeb),y)
...
else
... = $(BR2_ARCH)
endif
See:
http://git.buildroot.net/buildroot/commit/?id=c1e41153e662c7d49d7e0d1bf5e7a953d784f849
For the result.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com