View | Details | Raw Unified | Return to bug 270954
Collapse All | Expand All

(-)b/devel/cmake-core/Makefile (+1 lines)
Lines 1-6 Link Here
1
PORTNAME=	cmake
1
PORTNAME=	cmake
2
# Remember to update devel/cmake-doc and devel/cmake-gui as well.
2
# Remember to update devel/cmake-doc and devel/cmake-gui as well.
3
DISTVERSION=	${_CMAKE_VERSION}
3
DISTVERSION=	${_CMAKE_VERSION}
4
PORTREVISION=	1
4
CATEGORIES=	devel
5
CATEGORIES=	devel
5
PKGNAMESUFFIX=	-core
6
PKGNAMESUFFIX=	-core
6
7
(-)a/devel/cmake-core/files/patch-Modules_FindOpenMP.cmake (-106 lines)
Removed Link Here
1
Avoid looking for pthread by simply asserting that it is there.
2
Otherwise openmp can't be found because the pthread library
3
lives in /usr/lib and CMake 3.11 doesn't look there anymore
4
while looking for openmp. PR 223678.
5
6
Look for omp.h in LOCALBASE and pass suitable -I and -L flags
7
if those are necessary. Also use OpenMP flags when linking.
8
PR 223678 and PR 234050.
9
10
--- Modules/FindOpenMP.cmake.orig	2022-11-17 13:55:41 UTC
11
+++ Modules/FindOpenMP.cmake
12
@@ -97,6 +97,33 @@ cmake_policy(SET CMP0012 NEW) # if() recognizes number
13
 cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
14
 cmake_policy(SET CMP0057 NEW) # if IN_LIST
15
 
16
+set(OpenMP_pthread_LIBRARY -lpthread)
17
+
18
+# If the compiler itself has support for OpenMP, then omp.h is hidden
19
+# away somewhere and it won't be found here; but if the support comes
20
+# from an external package, it needs to have the right -I and -L flags.
21
+find_file(_path_to_omp_h omp.h)
22
+if(NOT _path_to_omp_h)
23
+  find_file(_path_to_omp_h omp.h
24
+    HINTS $ENV{LOCALBASE}/include /usr/local/include)
25
+endif()
26
+if(_path_to_omp_h)
27
+  get_filename_component(OpenMP_INCLUDE_DIR ${_path_to_omp_h} DIRECTORY)
28
+else()
29
+  set(OpenMP_INCLUDE_DIR "omp_h-NOTFOUND")
30
+endif()
31
+
32
+find_library(_path_to_omp_lib omp)
33
+if(NOT _path_to_omp_lib)
34
+  find_library(_path_to_omp_lib omp
35
+    PATHS $ENV{LOCALBASE}/lib /usr/local/lib)
36
+endif()
37
+if(_path_to_omp_lib)
38
+  get_filename_component(OpenMP_LIB_DIR ${_path_to_omp_lib} DIRECTORY)
39
+else()
40
+  set(OpenMP_LIB_DIR "omp_lib-NOTFOUND")
41
+endif()
42
+
43
 function(_OPENMP_FLAG_CANDIDATES LANG)
44
   if(NOT OpenMP_${LANG}_FLAG)
45
     unset(OpenMP_FLAG_CANDIDATES)
46
@@ -211,6 +238,15 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_
47
     if(OpenMP_VERBOSE_COMPILE_OPTIONS)
48
       string(APPEND OPENMP_FLAGS_TEST " ${OpenMP_VERBOSE_COMPILE_OPTIONS}")
49
     endif()
50
+    set(_extra_flag "")
51
+    if(OpenMP_INCLUDE_DIR)
52
+      string(APPEND _extra_flag " -I${OpenMP_INCLUDE_DIR}")
53
+    endif()
54
+    if(OpenMP_LIB_DIR)
55
+      string(APPEND _extra_flag " -L${OpenMP_LIB_DIR}")
56
+    endif()
57
+    set(_need_extra FALSE)
58
+
59
     string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
60
     try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG}
61
       SOURCE_FROM_VAR "${_OPENMP_TEST_SRC_NAME}" _OPENMP_TEST_SRC_CONTENT
62
@@ -219,8 +255,23 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_
63
       OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
64
     )
65
 
66
+    # Might need that -I -L after all..
67
+    if(NOT OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
68
+      unset(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
69
+      try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
70
+        CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST} ${_extra_flag}"
71
+        LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG}
72
+        OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
73
+      )
74
+      set(_need_extra TRUE)
75
+    endif()
76
+
77
     if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
78
-      set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
79
+      if(_need_extra)
80
+        set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG} ${_extra_flag}" PARENT_SCOPE)
81
+      else()
82
+        set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
83
+      endif()
84
 
85
       if(CMAKE_${LANG}_VERBOSE_FLAG)
86
         unset(OpenMP_${LANG}_IMPLICIT_LIBRARIES)
87
@@ -603,9 +654,16 @@ foreach(LANG IN LISTS OpenMP_FINDLIST)
88
         add_library(OpenMP::OpenMP_${LANG} INTERFACE IMPORTED)
89
       endif()
90
       if(OpenMP_${LANG}_FLAGS)
91
-        separate_arguments(_OpenMP_${LANG}_OPTIONS NATIVE_COMMAND "${OpenMP_${LANG}_FLAGS}")
92
+        # All the options except -L..
93
+        separate_arguments(_OpenMP_${LANG}_COMPILE_OPTIONS NATIVE_COMMAND "${OpenMP_${LANG}_FLAGS}")
94
+        list(FILTER _OpenMP_${LANG}_COMPILE_OPTIONS EXCLUDE REGEX "^-L/")
95
+        # All the options except -I..
96
+        separate_arguments(_OpenMP_${LANG}_LINK_OPTIONS NATIVE_COMMAND "${OpenMP_${LANG}_FLAGS}")
97
+        list(FILTER _OpenMP_${LANG}_LINK_OPTIONS EXCLUDE REGEX "^-I/")
98
         set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
99
-          INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${_OpenMP_${LANG}_OPTIONS}>")
100
+          INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${_OpenMP_${LANG}_COMPILE_OPTIONS}>")
101
+        set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
102
+          INTERFACE_LINK_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${_OpenMP_${LANG}_LINK_OPTIONS}>")
103
         if(CMAKE_${LANG}_COMPILER_ID STREQUAL "Fujitsu"
104
           OR ${CMAKE_${LANG}_COMPILER_ID} STREQUAL "IntelLLVM")
105
           set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
106
- 

Return to bug 270954