From 283de4f0c252034942759f2068fea0535425bd0a Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sat, 18 Apr 2015 13:58:16 -0400 Subject: [PATCH] Restore Xcode debugging with newer builds. --- .gitignore | 1 + CMake/CMakeMacros.cmake | 12 ++++++------ Xcode/Info.plist.in.xml | 2 +- Xcode/plistHelper.in.hpp | 10 ++++++++++ src/CMakeLists.txt | 30 +++++++++++++++++++++--------- 5 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 Xcode/plistHelper.in.hpp diff --git a/.gitignore b/.gitignore index 45ebd1fc67..bed5b5ec5b 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ Contents/ verdata.* StepMania-debug Xcode/Info.StepMania.plist +Xcode/plistHelper.hpp # Text Editor Based Items ___* diff --git a/CMake/CMakeMacros.cmake b/CMake/CMakeMacros.cmake index dd7754a718..71ce9c32b4 100644 --- a/CMake/CMakeMacros.cmake +++ b/CMake/CMakeMacros.cmake @@ -26,12 +26,12 @@ endfunction() function(sm_add_link_flag target flag) if (MSVC) # Use a modified form of sm_append_simple_target_property. - get_target_property(current_property ${target} LINK_FLAGS) - if (current_property) - set_target_properties(${target} PROPERTIES LINK_FLAGS "${current_property} ${flag}") - else() - set_target_properties(${target} PROPERTIES LINK_FLAGS ${flag}) - endif() + get_target_property(current_property ${target} LINK_FLAGS) + if (current_property) + set_target_properties(${target} PROPERTIES LINK_FLAGS "${current_property} ${flag}") + else() + set_target_properties(${target} PROPERTIES LINK_FLAGS ${flag}) + endif() else() sm_append_simple_target_property(${target} LINK_FLAGS ${flag}) endif() diff --git a/Xcode/Info.plist.in.xml b/Xcode/Info.plist.in.xml index 8180979ebc..6ffc9a84a4 100644 --- a/Xcode/Info.plist.in.xml +++ b/Xcode/Info.plist.in.xml @@ -28,7 +28,7 @@ CFBundleExecutable - @SM_EXE_NAME@ + PRODUCT_NAME CFBundleGetInfoString @SM_EXE_NAME@ @SM_VERSION_TRADITIONAL@ CFBundleIconFile diff --git a/Xcode/plistHelper.in.hpp b/Xcode/plistHelper.in.hpp new file mode 100644 index 0000000000..84aa9b3fcf --- /dev/null +++ b/Xcode/plistHelper.in.hpp @@ -0,0 +1,10 @@ +#if defined(DEBUG) +#define PRODUCT_NAME @SM_NAME_DEBUG@ +#elif defined(MINSIZEREL) +#define PRODUCT_NAME @SM_NAME_MINSIZEREL@ +#elif defined(RELWITHDEBINFO) +#define PRODUCT_NAME @SM_NAME_RELWITHDEBINFO@ +#else +#define PRODUCT_NAME @SM_NAME_RELEASE@ +#endif + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5f148dc89b..9cc14e1901 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -151,8 +151,14 @@ if(NOT APPLE) source_group("" FILES "Main.cpp") endif() +set(SM_NAME_RELEASE "StepMania") +set(SM_NAME_DEBUG "StepMania-debug") +set(SM_NAME_MINSIZEREL "StepMania-min-size") +set(SM_NAME_RELWITHDEBINFO "StepMania-release-symbols") + # Configure generated files here. configure_file("${SM_XCODE_DIR}/Info.plist.in.xml" "${SM_XCODE_DIR}/Info.StepMania.plist") +configure_file("${SM_XCODE_DIR}/plistHelper.in.hpp" "${SM_XCODE_DIR}/plistHelper.hpp") # TODO: Make this actually be data and not an executable. if(APPLE) @@ -175,11 +181,13 @@ if (NOT WITH_NETWORKING) sm_add_compile_definition("${SM_EXE_NAME}" WITHOUT_NETWORKING) endif() -set(SM_COMPILE_FLAGS "") # Compilation flags per project here. -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - sm_add_compile_definition("${SM_EXE_NAME}" "DEBUG=1") -endif() +sm_add_compile_definition("${SM_EXE_NAME}" $<$:DEBUG>) +sm_add_compile_definition("${SM_EXE_NAME}" $<$:RELEASE>) +sm_add_compile_definition("${SM_EXE_NAME}" $<$:MINSIZEREL>) +sm_add_compile_definition("${SM_EXE_NAME}" $<$:RELWITHDEBINFO>) + +set(SM_COMPILE_FLAGS "") if(WITH_SSE2) if(MSVC) @@ -202,13 +210,11 @@ if(MSVC) set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} /MP2") endif() -set(SM_NAME_RELEASE "StepMania") -set(SM_NAME_DEBUG "StepMania-debug") -set(SM_NAME_MINSIZEREL "StepMania-min-size") -set(SM_NAME_RELWITHDEBINFO "StepMania-release-symbols") - set_target_properties("${SM_EXE_NAME}" PROPERTIES COMPILE_FLAGS ${SM_COMPILE_FLAGS} +) + +set_target_properties("${SM_EXE_NAME}" PROPERTIES OUTPUT_NAME_DEBUG "${SM_NAME_DEBUG}" OUTPUT_NAME_MINSIZEREL "${SM_NAME_MINSIZEREL}" OUTPUT_NAME_RELWITHDEBINFO "${SM_RELWITHDEBINFO}" @@ -252,6 +258,12 @@ elseif(APPLE) RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_ROOT_DIR}" MACOSX_BUNDLE_INFO_PLIST "${SM_XCODE_DIR}/Info.StepMania.plist" XCODE_ATTRIBUTE_INFOPLIST_FILE "${SM_XCODE_DIR}/Info.StepMania.plist" + XCODE_ATTRIBUTE_INFOPLIST_PREPROCESS "YES" + XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=Release] "RELEASE" + XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=Debug] "DEBUG" + XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=MinSizeRel] "MINSIZEREL" + XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=RelWithDebInfo] "RELWITHDEBINFO" + XCODE_ATTRIBUTE_INFOPLIST_PREFIX_HEADER "${SM_XCODE_DIR}/plistHelper.hpp" 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"