[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r2191: Have CMake make a Vidalia.app application bundle on OS X. (in trunk/src: . vidalia)



Author: edmanm
Date: 2007-12-07 11:27:31 -0500 (Fri, 07 Dec 2007)
New Revision: 2191

Modified:
   trunk/src/CMakeLists.txt
   trunk/src/vidalia/CMakeLists.txt
Log:
Have CMake make a Vidalia.app application bundle on OS X.

Modified: trunk/src/CMakeLists.txt
===================================================================
--- trunk/src/CMakeLists.txt	2007-12-07 04:43:50 UTC (rev 2190)
+++ trunk/src/CMakeLists.txt	2007-12-07 16:27:31 UTC (rev 2191)
@@ -29,8 +29,8 @@
   ${CMAKE_CURRENT_SOURCE_DIR}/util
 )
 link_directories(
-  ${Vidalia_BINARY_DIR}/torcontrol
-  ${Vidalia_BINARY_DIR}/util
+  ${CMAKE_CURRENT_BINARY_DIR}/torcontrol
+  ${CMAKE_CURRENT_BINARY_DIR}/util
 )
 
 add_subdirectory(torcontrol)

Modified: trunk/src/vidalia/CMakeLists.txt
===================================================================
--- trunk/src/vidalia/CMakeLists.txt	2007-12-07 04:43:50 UTC (rev 2190)
+++ trunk/src/vidalia/CMakeLists.txt	2007-12-07 16:27:31 UTC (rev 2191)
@@ -205,18 +205,34 @@
   help/content/content.qrc
 )
 
-## Set the appropriate executable target for the current platform 
+## Set the appropriate executable target for the current platform
 if (APPLE)
+  ## Set the output file name (make it uppercase on OS X)
+  set(vidalia_BIN Vidalia)
+  
   ## Create an OS X application bundle
-  set(MACOSX_BUNDLE_ICON_FILE res/icons/vidalia.icns)
-  set(MACOSX_BUNDLE_SHORT_VERSION  ${VERSION})
-  set(MACOSX_BUNDLE_VERSION        ${VERSION})
-  set(MACOSX_BUNDLE_LONG_VERSION_STRING Version ${VERSION})
+  set(MACOSX_BUNDLE_BUNDLE_NAME           Vidalia)
+  set(MACOSX_BUNDLE_BUNDLE_VERSION        ${VERSION})
+  set(MACOSX_BUNDLE_SHORT_VERSION_STRING  ${VERSION})
+  set(MACOSX_BUNDLE_LONG_VERSION_STRING   "Version ${VERSION}")
+  set(MACOSX_BUNDLE_ICON_FILE             vidalia.icns)
   
   ## Put everything inside the application bundle
   set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/)
-  add_executable(Vidalia ${vidalia_SRCS})
+  add_executable(${vidalia_BIN} MACOSX_BUNDLE ${vidalia_SRCS})
+
+  ## Include the bundle resource files
+  add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+    COMMAND mkdir 
+      ARGS -p ${CMAKE_CURRENT_BINARY_DIR}/Vidalia.app/Contents/Resources
+    COMMAND cp
+      ARGS ${CMAKE_CURRENT_SOURCE_DIR}/res/icons/*.icns 
+           ${CMAKE_CURRENT_BINARY_DIR}/Vidalia.app/Contents/Resources/
+  )
 else(APPLE)
+  ## Set the output file name
+  set(vidalia_BIN vidalia)
+  
   if (WIN32)
     ## Create a Windows binary
     if (MINGW)
@@ -224,22 +240,22 @@
     else (MINGW)
       qt4_add_resources(vidalia_SRCS res/vidalia_win.rc)
     endif(MINGW)
-    add_executable(vidalia WIN32 ${vidalia_SRCS})
+    add_executable(${vidalia_BIN} WIN32 ${vidalia_SRCS})
   else (WIN32)
     ## Non-Windows, non-Mac
-    add_executable(vidalia ${vidalia_SRCS})
+    add_executable(${vidalia_BIN} ${vidalia_SRCS})
   endif(WIN32)
 endif(APPLE)
-add_dependencies(vidalia translations)
+add_dependencies(${vidalia_BIN} translations)
 
 ## Link to the Qt libraries and other libraries built as a part of Vidalia
-target_link_libraries(vidalia
+target_link_libraries(${vidalia_BIN}
   ${QT_LIBRARIES}
   torcontrol
   util
 )
 if (MINGW)
-  target_link_libraries(vidalia
+  target_link_libraries(${vidalia_BIN}
     ole32
     oleaut32
     uuid
@@ -248,5 +264,5 @@
 endif(MINGW)
 
 ## Specify the files to be installed
-install(TARGETS vidalia DESTINATION bin)
+install(TARGETS ${vidalia_BIN} DESTINATION bin)