More CMake improvements and education.

* `set_target_properties` can have multiple properties assigned in one go.
* Have version information be generated from CMake, not later plist preprocessing.
* Configure the plist file regardless of OS. This should be a safe command: following the example from the knut repository.

The old fashioned Info-StepMania.plist file can be considered deprecated
upon a full migration to CMake.
This commit is contained in:
Jason Felds
2015-04-03 23:24:46 -04:00
parent 6b4c4e298f
commit 016a4053e1
4 changed files with 72 additions and 14 deletions
+1
View File
@@ -15,6 +15,7 @@ Release/
Contents/
verdata.*
StepMania-debug
Xcode/Info.StepMania.plist
# Text Editor Based Items
___*
+1
View File
@@ -136,6 +136,7 @@ elseif(MACOSX)
# When SDL2 is introduced, this may change.
set(CMAKE_OSX_ARCHITECTURES "i386")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.6")
set(CMAKE_OSX_DEPLOYMENT_TARGET_FULL "10.6.8")
find_library(MAC_FRAME_ACCELERATE Accelerate ${CMAKE_SYSTEM_FRAMEWORK_PATH})
find_library(MAC_FRAME_APPKIT AppKit ${CMAKE_SYSTEM_FRAMEWORK_PATH})
+60
View File
@@ -0,0 +1,60 @@
<?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>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>smzip</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>smicon.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/zip</string>
</array>
<key>CFBundleTypeName</key>
<string>SMZip</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSTypeIsPackage</key>
<false />
<key>NSPersistentStoreTypeKey</key>
<string>Binary</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>@SM_EXE_NAME@</string>
<key>CFBundleGetInfoString</key>
<string>@SM_EXE_NAME@ @SM_VERSION_TRADITIONAL@</string>
<key>CFBundleIconFile</key>
<string>smicon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.@SM_EXE_NAME@ @SM_VERSION_MAJOR@</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>@SM_EXE_NAME@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>@SM_VERSION_TRADITIONAL@</string>
<key>CFBundleSignature</key>
<string>Step</string>
<key>CFBundleVersion</key>
<string>@SM_VERSION_TRADITIONAL@</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.music-games</string>
<key>LSMinimumSystemVersion</key>
<string>@CMAKE_OSX_DEPLOYMENT_TARGET_FULL@</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2001-2015</string>
<key>NSPrincipalClass</key>
<string>SMApplication</string>
</dict>
</plist>
+10 -14
View File
@@ -158,6 +158,9 @@ else()
set(SM_EXE_NAME "stepmania")
endif()
# Configure generated files here.
configure_file("${SM_XCODE_DIR}/Info.plist.in.xml" "${SM_XCODE_DIR}/Info.StepMania.plist")
# TODO: Make this actually be data and not an executable.
if(APPLE)
set(MACOSX_BUNDLE_BUNDLE_NAME ${SM_EXE_NAME})
@@ -225,22 +228,15 @@ elseif(APPLE)
set_target_properties("${SM_EXE_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${SM_ROOT_DIR}")
set_target_properties("${SM_EXE_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_ROOT_DIR}")
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_FILE
"${SM_XCODE_DIR}/Info-StepMania.plist"
)
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_PREFIX_HEADER "${SM_SRC_DIR}/ProductInfo.h")
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_PREPROCESS "YES")
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS
"EXECUTABLE_NAME=\$(PRODUCT_NAME)"
set_target_properties("${SM_EXE_NAME}" PROPERTIES
MACOSX_BUNDLE_INFO_PLIST "${SM_XCODE_DIR}/Info.StepMania.plist"
XCODE_ATTRIBUTE_INFOPLIST_FILE "${SM_XCODE_DIR}/Info.StepMania.plist"
XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/archutils/Darwin/StepMania.pch"
XCODE_ATTRIBUTE_GCC_ENABLE_CPP_EXCEPTIONS "NO"
XCODE_ATTRIBUTE_LIBRARY_SEARCH_PATHS "${SM_XCODE_DIR}/ffmpeg/lib ${SM_XCODE_DIR}/Libraries"
XCODE_ATTRIBUTE_OTHER_LDFLAGS "-lbz2"
)
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER
"${CMAKE_CURRENT_SOURCE_DIR}/archutils/Darwin/StepMania.pch")
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_GCC_ENABLE_CPP_EXCEPTIONS "NO")
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_LIBRARY_SEARCH_PATHS
"${SM_XCODE_DIR}/ffmpeg/lib ${SM_XCODE_DIR}/Libraries"
)
set_target_properties("${SM_EXE_NAME}" PROPERTIES XCODE_ATTRIBUTE_OTHER_LDFLAGS "-lbz2")
sm_add_compile_definition("${SM_EXE_NAME}" _XOPEN_SOURCE)
# Add the ability to copy the resource file.