[cmake-commits] hoffman committed CMakeIngestOSXBundleLibraries.cmake 1.2 1.3

cmake-commits at cmake.org cmake-commits at cmake.org
Mon Feb 18 14:51:45 EST 2008


Update of /cvsroot/CMake/CMake/Source/QtDialog
In directory public:/mounts/ram/cvs-serv24979

Modified Files:
	CMakeIngestOSXBundleLibraries.cmake 
Log Message:
ENH: make sure fixup has right paths


Index: CMakeIngestOSXBundleLibraries.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/QtDialog/CMakeIngestOSXBundleLibraries.cmake,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- CMakeIngestOSXBundleLibraries.cmake	18 Feb 2008 18:11:34 -0000	1.2
+++ CMakeIngestOSXBundleLibraries.cmake	18 Feb 2008 19:51:43 -0000	1.3
@@ -66,6 +66,24 @@
 
 find_program(dep_cmd ${dep_tool})
 
+# find the full path to the framework in path set the result
+# in pathout
+macro(find_framework_full_path path pathout)
+  set(${pathout} "${path}")
+  if(NOT EXISTS "${path}")
+    set(FRAMEWORK_SEARCH "/Library/Frameworks"
+      "/System/Library/Frameworks" )
+    set(__FOUND FALSE)
+    foreach(f ${FRAMEWORK_SEARCH})
+      set(newd "${f}/${path}")
+      if(EXISTS "${newd}" AND NOT __FOUND)
+        set(${pathout} "${newd}")
+        set(__FOUND TRUE)
+      endif(EXISTS "${newd}" AND NOT __FOUND)
+    endforeach(f)
+  endif(NOT EXISTS "${path}")
+endmacro(find_framework_full_path)
+
 
 macro(append_unique au_list_var au_value)
   set(${au_list_var} ${${au_list_var}} "${au_value}")
@@ -150,20 +168,6 @@
     if(d_is_embedded_lib)
       set(embedded_deps ${embedded_deps} "${d}")
     else(d_is_embedded_lib)
-      # if the non system lib is not found then try to look for it
-      # in the standard framework search path for OSX
-      if(NOT EXISTS "${d}")
-        set(FRAMEWORK_SEARCH "/Library/Frameworks"
-          "/System/Library/Frameworks" )
-        set(__FOUND )
-        foreach(f ${FRAMEWORK_SEARCH})
-          set(newd "${f}/${d}")
-          if(EXISTS "${newd}" AND NOT __FOUND)
-            set(d "${newd}")
-            set(__FOUND TRUE)
-          endif(EXISTS "${newd}" AND NOT __FOUND)
-        endforeach(f)
-      endif(NOT EXISTS "${d}")
       set(nonsystem_deps ${nonsystem_deps} "${d}")
     endif(d_is_embedded_lib)
   endif(d_is_system_lib)
@@ -198,22 +202,25 @@
   # "${clib_bundle}/Contents/MacOS"
   #
   if("${clib_libsrc}" MATCHES ".framework/.*/.*/.*")
-    get_filename_component(fw_src "${clib_libsrc}" ABSOLUTE)
+    # make sure clib_libsrc is a full path to the framework as a framework
+    # maybe linked in with relative paths in some cases
+    find_framework_full_path("${clib_libsrc}" fw_full_src)
+    get_filename_component(fw_src "${fw_full_src}" ABSOLUTE)
     get_filename_component(fw_srcdir "${clib_libsrc}/../../.." ABSOLUTE)
     get_filename_component(fwdirname "${fw_srcdir}" NAME)
     string(REGEX REPLACE "^(.*)\\.framework$" "\\1" fwname "${fwdirname}")
     string(REGEX REPLACE "^.*/${fwname}\\.framework/(.*)$" "\\1" fwlibname "${clib_libsrc}")
     set(fw_dstdir "${clib_bundle}/Contents/Frameworks/${fwdirname}")
 
-#    message("")
-#    message("fwdirname: '${fwdirname}'")
-#    message("fwname: '${fwname}'")
-#    message("fwlibname: '${fwlibname}'")
-#    message("fw_src: '${fw_src}'")
-#    message("fw_srcdir: '${fw_srcdir}'")
-#    message("fw_dstdir: '${fw_dstdir}'")
-#    message("new_name: '@executable_path/../Frameworks/${fwdirname}/${fwlibname}'")
-#    message("")
+#     message("")
+#     message("fwdirname: '${fwdirname}'")
+#     message("fwname: '${fwname}'")
+#     message("fwlibname: '${fwlibname}'")
+#     message("fw_src: '${fw_src}'")
+#     message("fw_srcdir: '${fw_srcdir}'")
+#     message("fw_dstdir: '${fw_dstdir}'")
+#     message("new_name: '@executable_path/../Frameworks/${fwdirname}/${fwlibname}'")
+#     message("")
 
     message("Copying ${fw_srcdir} into bundle...")
 
@@ -227,6 +234,7 @@
     # (This technique will not work for frameworks that have necessary
     # resource or auxiliary files...)
     #
+    message("fw_src = [${fw_src}]   fw_full_src = [${fw_full_src}]")
     message("Copy: ${CMAKE_COMMAND} -E copy \"${fw_src}\"  \"${fw_dstdir}/${fwlibname}\"")
     execute_process(COMMAND ${CMAKE_COMMAND} -E copy
       "${fw_src}" "${fw_dstdir}/${fwlibname}"
@@ -288,6 +296,7 @@
 set(dstlibs "")
 set(fixups "")
 foreach(d ${srclibs})
+  message("copy it --- ${d}")
   copy_library_into_bundle("${bundle}" "${d}" dstlibs fixups)
 endforeach(d)
 
@@ -323,8 +332,8 @@
 
 # Output file:
 #
-get_filename_component(script_name "${CMAKE_CURRENT_LIST_FILE}" NAME)
-file(WRITE "${input_file_full}_${script_name}" "# Script \"${CMAKE_CURRENT_LIST_FILE}\" completed.\n")
+#get_filename_component(script_name "${CMAKE_CURRENT_LIST_FILE}" NAME)
+#file(WRITE "${input_file_full}_${script_name}" "# Script \"${CMAKE_CURRENT_LIST_FILE}\" completed.\n")
 message("")
 message("# Script \"${CMAKE_CURRENT_LIST_FILE}\" completed.")
 message("")



More information about the Cmake-commits mailing list