--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
+ <key>CFBundleGetInfoString</key>
+ <string>${MACOSX_BUNDLE_INFO_STRING}</string>
+ <key>CFBundleIconFile</key>
+ <string>${MACOSX_BUNDLE_ICON_FILE}</string>
+ <key>CFBundleIdentifier</key>
+ <string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleLongVersionString</key>
+ <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
+ <key>CFBundleName</key>
+ <string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
+
+ <key>LSMinimumSystemVersion</key>
+ <string>10.6.0</string>
+
+ <key>NSHumanReadableCopyright</key>
+ <string>${MACOSX_BUNDLE_COPYRIGHT}</string>
+</dict>
+</plist>
puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}"
-$svnLibs = ['svn_client', 'svn_wc', 'svn_delta', 'svn_diff', 'svn_ra',
- 'svn_ra_local', 'svn_repos', 'svn_fs', 'svn_fs_fs', 'svn_fs_util',
- 'svn_ra_svn', 'svn_subr', 'svn_ra_neon']
-
def fix_install_names(object)
#puts "fixing install names for #{object}"
`rm -rf #{dmgDir}`
bundle=dmgDir + "/FlightGear.app"
+
+puts "Moving & renaming app bundle"
+`mkdir -p #{dmgDir}`
+`mv #{$prefixDir}/fgfs.app #{bundle}`
+
contents=bundle + "/Contents"
macosDir=contents + "/MacOS"
$frameworksDir=contents +"/Frameworks"
osgPluginsDir=contents+"/PlugIns/osgPlugins-#{osgVersion}"
volName="\"FlightGear Nightly Build\""
-def fix_svn_install_names(object)
- $svnLibs.each do |l|
- fileName = "lib#{l}-1.0.dylib"
- newName = "@executable_path/../Frameworks/#{fileName}"
- `install_name_tool -change #{fileName} #{newName} #{object}`
- end
-end
-
-def copy_svn_libs()
- puts "Copying Subversion client libraries"
- $svnLibs.each do |l|
- libFile = "lib#{l}-1.0.dylib"
- path = "#{$frameworksDir}/#{libFile}"
- `cp #{$prefixDir}/lib/#{libFile} #{$frameworksDir}`
- fix_svn_install_names(path)
- # `install_name_tool -id #{libFile} #{path}`
- end
-end
-
def code_sign(path)
puts "Signing #{path}"
`codesign -s "#{$codeSignIdentity}" #{path}`
dmgPath = Dir.pwd + "/fg_mac_nightly_#{fgVersion}.dmg"
puts "Creating directory structure"
-`mkdir -p #{macosDir}`
`mkdir -p #{$frameworksDir}`
`mkdir -p #{resourcesDir}`
`mkdir -p #{osgPluginsDir}`
outPath = "#{macosDir}/#{b}"
`cp #{$prefixDir}/bin/#{b} #{outPath}`
fix_install_names(outPath)
- fix_svn_install_names(outPath)
end
puts "copying libraries"
fix_install_names("#{osgPluginsDir}/#{pluginFile}")
end
-copy_svn_libs()
-
-# Info.plist
-template = File.read("#{srcDir}/package/mac/nightly.plist.in")
-output = ERB.new(template).result(binding)
-
-File.open("#{contents}/Info.plist", 'w') { |f|
- f.write(output)
-}
-
`cp #{srcDir}/package/mac/nightly-readme.rtf #{dmgDir}/ReadMe.rtf`
`cp #{srcDir}/package/mac/FlightGear.icns #{resourcesDir}/FlightGear.icns`
`cp #{srcDir}/COPYING #{dmgDir}`
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleIconFile</key>
- <string>FlightGear.icns</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleGetInfoString</key>
- <string>FlightGear nightly build</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleExecutable</key>
- <string>FlightGear</string>
- <key>CFBundleIdentifier</key>
- <string>org.flightgear.FlightGear</string>
- <key>CFBundleVersion</key>
- <string><%= fgVersion %></string>
- <key>CFBundleShortVersionString</key>
- <string>unstable nightly build</string>
- <key>LSMinimumSystemVersion</key>
- <string>10.6.0</string>
- <key>NSMainNibFile</key>
- <string>MainMenu</string>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
-</dict>
-</plist>
-
# important we pass WIN32 here so the console is optional. Other
# platforms ignore this option. If a console is needed we allocate
# it manually via AllocConsole()
-add_executable(fgfs WIN32 ${SOURCES} ${FG_SOURCES} ${FG_HEADERS} ${HEADERS})
+# similarly pass MACOSX_BUNDLE so we generate a .app on Mac
+add_executable(fgfs WIN32 MACOSX_BUNDLE
+ ${SOURCES} ${FG_SOURCES} ${FG_HEADERS} ${HEADERS})
+
+#-----------------------------------------------------------------------------
+# MacOSX bundle packagaing
+
+if(APPLE)
+ execute_process(COMMAND date +%Y
+ OUTPUT_VARIABLE CURRENT_YEAR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ # in our local CMakeModules dir
+ set_target_properties(fgfs PROPERTIES
+ MACOSX_BUNDLE_INFO_PLIST FlightGearBundleInfo.plist.in
+ MACOSX_BUNDLE_GUI_IDENTIFIER "org.flightgear.FlightGear"
+ MACOSX_BUNDLE_SHORT_VERSION_STRING ${FLIGHTGEAR_VERSION}
+ MACOSX_BUNDLE_LONG_VERSION_STRING "FlightGear ${FLIGHTGEAR_VERSION} Nightly"
+ MACOSX_BUNDLE_BUNDLE_VERSION ${FLIGHTGEAR_VERSION}
+ MACOSX_BUNDLE_COPYRIGHT "FlightGear ${FLIGHTGEAR_VERSION} © 1997-${CURRENT_YEAR}, The FlightGear Project. Licensed under the GNU Public License version 2."
+ MACOSX_BUNDLE_INFO_STRING "Nightly build of FlightGear ${FLIGHTGEAR_VERSION} for testing and development"
+ MACOSX_BUNDLE_BUNDLE_NAME "FlightGear"
+ MACOSX_BUNDLE_ICON_FILE "FlightGear.icns"
+ )
+endif()
+
+#-----------------------------------------------------------------------------
get_property(FG_LIBS GLOBAL PROPERTY FG_LIBS)
#message(STATUS "fg libs ${FG_LIBS}")
${OPENSCENEGRAPH_LIBRARIES}
${OPENGL_LIBRARIES}
${PLIB_LIBRARIES}
- ${JPEG_LIBRARY}
${HLA_LIBRARIES}
${EVENT_INPUT_LIBRARIES}
${SIMGEAR_CORE_LIBRARY_DEPENDENCIES}
${PLATFORM_LIBS}
)
-install(TARGETS fgfs RUNTIME DESTINATION bin)
+if (APPLE)
+ install(TARGETS fgfs BUNDLE DESTINATION .)
+else()
+ install(TARGETS fgfs RUNTIME DESTINATION bin)
+endif()
if(ENABLE_METAR)
add_executable(metar metar_main.cxx)