CMake: fix on non-gcc2 architectures

Checking for the compiler version at packaging time doesn't work. So, do
it earlier and export a variable for it.

Also fix some variable names to make a check work and avoid cmake
failing in strange ways later on.
This commit is contained in:
Adrien Destugues
2013-11-22 17:54:05 +01:00
parent b177b0dfd2
commit a2e291e446
2 changed files with 75 additions and 2 deletions

View File

@@ -10,8 +10,8 @@ LICENSE="CMake"
COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved."
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz"
CHECKSUM_MD5="6f5d7b8e7534a5d9e1a7664ba63cf882"
REVISION="5"
ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"
REVISION="6"
ARCHITECTURES="x86_gcc2 x86 ?x86_64"
PROVIDES="
cmake = $portVersion compat >= 2.8

View File

@@ -1698,3 +1698,76 @@ index a3ebe24..dd4c55e 100644
--
1.8.3.4
From 748a5f0f1db2efaf411655206b74a85f9417a9c9 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Fri, 22 Nov 2013 17:49:55 +0100
Subject: CPack: fix architecture detection and packager check
CPack can't access CMake compiler settings directly, as it is run in a
different context. Try getting data we export ourselves from the
platform script, and when that doesn't work, fail with a message.
diff --git a/Modules/CPackHpkg.cmake b/Modules/CPackHpkg.cmake
index 3308889..9b6917f 100644
--- a/Modules/CPackHpkg.cmake
+++ b/Modules/CPackHpkg.cmake
@@ -197,11 +197,11 @@ endif()
# Architecture: (mandatory)
if(NOT CPACK_HAIKU_PACKAGE_ARCHITECTURE)
- if(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0)
- set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "x86_gcc2")
- else()
- set(CPACK_HAIKU_PACKAGE_ARCHITECTURE $ENV{BE_HOST_CPU})
+ if(NOT CMAKE_HAIKU_ARCHITECTURE)
+ message(FATAL_ERROR "CPackHpkg: Please set CPACK_HAIKU_PACKAGE_ARCHITECTURE or CMAKE_HAIKU_ARCHITECTURE")
endif()
+
+ set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "${CMAKE_HAIKU_ARCHITECTURE}")
endif()
# have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES),
@@ -216,9 +216,9 @@ endif()
# Maintainer: (mandatory)
if(NOT CPACK_HAIKU_PACKAGE_PACKAGER)
if(NOT CPACK_PACKAGE_CONTACT)
- message(FATAL_ERROR "CPackHpkg: Haiku package requires a maintainer, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER")
+ message(FATAL_ERROR "CPackHpkg: Haiku package requires a packager, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER")
endif()
- set(CPACK_HAIKU_PACKAGE_MAINTAINER ${CPACK_PACKAGE_PACKAGER})
+ set(CPACK_HAIKU_PACKAGE_PACKAGER ${CPACK_PACKAGE_CONTACT})
endif()
# Vendor: (mandatory)
diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake
index dd4c55e..36576d1 100644
--- a/Modules/Platform/Haiku.cmake
+++ b/Modules/Platform/Haiku.cmake
@@ -39,7 +39,7 @@ execute_process(
RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND
OUTPUT_STRIP_TRAILING_WHITESPACE)
-string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?" _dummy "${_HAIKU_SEARCH_DIRS}")
+string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/[:^\n]" _dummy "${_HAIKU_SEARCH_DIRS}")
set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}")
if(NOT CMAKE_HAIKU_SECONDARY_ARCH)
@@ -59,6 +59,14 @@ else()
set(CMAKE_CXX_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
endif()
+if(CMAKE_C_COMPILER_VERSION)
+ if(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0)
+ set(CMAKE_HAIKU_ARCHITECTURE "x86_gcc2")
+ else()
+ set(CMAKE_HAIKU_ARCHITECTURE "$ENV{BE_HOST_CPU}")
+ endif()
+endif()
+
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
/boot/system/non-packaged
/boot/system
--
1.8.3.4