mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 03:30:05 +02:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user