about summary refs log tree commit diff
path: root/pkgs/desktops/kde-4.8/kdebindings/perlqt-rewrite-FindPerlMore.patch
blob: c7f73815f5459c3b336b90e6825c49627f6a4e81 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
commit e702abfd16f610e773fb0310d8c6512991794c63
Author: Yury G. Kudryashov [diff odt] <urkud.urkud@gmail.com>
Date:   Wed Mar 21 00:50:02 2012 +0400

    Rewrite FindPerlMore.cmake
    
    * Ask perl for expanded paths
    * Move execute_process to a macro
    * Add PERL_*_INSTALL_DIR variables that point to CMAKE_INSTALL_PREFIX
    
    The last change makes it easy to install a file into CMAKE_INSTALL_PREFIX
    instead of perl install prefix.Add debug message

diff --git a/cmake/FindPerlMore.cmake b/cmake/FindPerlMore.cmake
index 6412a47..cc8faf8 100644
--- a/cmake/FindPerlMore.cmake
+++ b/cmake/FindPerlMore.cmake
@@ -5,54 +5,52 @@
 #
 #  PERL_INCLUDE_PATH = path to where perl.h can be found
 
-if(PERL_INCLUDE_PATH)
-   # Already in cache, be silent
-   SET(PERL_HEADERS_FOUND TRUE)
-endif (PERL_INCLUDE_PATH)		
-
-IF(PERL_EXECUTABLE)
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{archlib}"
-   		OUTPUT_VARIABLE PERL_ARCH_LIB_DIR)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{sitearch}"
-   		OUTPUT_VARIABLE PERL_SITE_ARCH_DIR)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{vendorarch}"
-   		OUTPUT_VARIABLE PERL_VENDOR_ARCH_DIR)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{sitelib}"
-   		OUTPUT_VARIABLE PERL_SITE_LIB_DIR)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{vendorlib}"
-   		OUTPUT_VARIABLE PERL_VENDOR_LIB_DIR)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{version}"
-   		OUTPUT_VARIABLE PERL_VERSION)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccflags}"
-   		OUTPUT_VARIABLE PERL_CXX_FLAGS)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{ccdlflags}"
-   		OUTPUT_VARIABLE PERL_CCDL_FLAGS)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -MFile::Spec -e "print '-L' . File::Spec->catdir(\$Config{archlibexp}, 'CORE')"
-   		OUTPUT_VARIABLE PERL_EXTRA_LIB_PATHS)
-
-	EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{perllibs}"
-   		OUTPUT_VARIABLE PERL_LIBS)
-
-	FIND_PATH(PERL_INCLUDE_PATH 
-  		NAMES perl.h
-  		PATHS ${PERL_ARCH_LIB_DIR}/CORE
-  	)
-
-	if(PERL_INCLUDE_PATH)
-		SET(PERL_HEADERS_FOUND TRUE)
-	endif (PERL_INCLUDE_PATH)
-
-	MARK_AS_ADVANCED(
-	  PERL_INCLUDE_PATH
-	  )
+if(FIND_PERLMORE_REQUIRED)
+  find_package(Perl REQUIRED)
+else()
+ find_package(Perl)
+endif()
+
+macro(_perl_get_config_var name output)
+  execute_process(COMMAND ${PERL_EXECUTABLE} -MConfig -e "print \$Config{${name}}"
+                  OUTPUT_VARIABLE PERL_${output})
+endmacro()
+
+macro(_perl_get_config_dir name)
+  string(TOLOWER ${name} _tmp)
+  string(REPLACE "_" "" _tmp ${_tmp})
+  _perl_get_config_var(${_tmp}exp ${name}_DIR)
+  string(REPLACE "${PERL_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" PERL_${name}_INSTALL_DIR "${PERL_${name}_DIR}")
+endmacro()
+
+if(PERL_EXECUTABLE)
+  _perl_get_config_var(prefixexp ROOT_DIR)
+
+  _perl_get_config_dir(ARCH_LIB)
+  _perl_get_config_dir(SITE_ARCH)
+  _perl_get_config_dir(VENDOR_ARCH)
+  _perl_get_config_dir(SITE_LIB)
+  _perl_get_config_dir(VENDOR_LIB)
+
+  _perl_get_config_var(version VERSION)
+  _perl_get_config_var(ccflags CXX_FLAGS)
+  _perl_get_config_var(ccdlflags CCDL_FLAGS)
+
+  EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -MConfig -MFile::Spec -e "print '-L' . File::Spec->catdir(\$Config{archlibexp}, 'CORE')"
+                  OUTPUT_VARIABLE PERL_EXTRA_LIB_PATHS)
+
+  _perl_get_config_var(perllibs LIBS)
+
+  FIND_PATH(PERL_INCLUDE_PATH
+            NAMES perl.h
+            HINTS ${PERL_ARCH_LIB_DIR}/CORE
+  )
+
+  if(PERL_INCLUDE_PATH)
+    SET(PERL_HEADERS_FOUND TRUE)
+  endif (PERL_INCLUDE_PATH)
+
+  MARK_AS_ADVANCED(PERL_INCLUDE_PATH)
 ENDIF(PERL_EXECUTABLE)
 
 IF(PERL_HEADERS_FOUND)