|
|
@@ -748,8 +748,8 @@ macro (setup_main_executable)
|
|
|
endif ()
|
|
|
|
|
|
if (IOS)
|
|
|
- get_target_property (TARGET_LOC ${TARGET_NAME} LOCATION)
|
|
|
# Define a custom target to check for resource modification
|
|
|
+ get_target_property (TARGET_LOC ${TARGET_NAME} LOCATION)
|
|
|
string (REGEX REPLACE /Contents/MacOS "" TARGET_LOC ${TARGET_LOC}) # The regex replacement is temporary workaround to correct the wrong location caused by CMake/Xcode generator bug
|
|
|
add_custom_target (RESOURCE_CHECK_${TARGET_NAME} ALL
|
|
|
\(\( `find ${RESOURCE_FILES} -newer ${TARGET_LOC} 2>/dev/null |wc -l` \)\) && touch -cm ${SOURCE_FILES} || exit 0
|
|
|
@@ -758,6 +758,25 @@ macro (setup_main_executable)
|
|
|
endif ()
|
|
|
endmacro ()
|
|
|
|
|
|
+# Post-CMake fixes for iOS project
|
|
|
+if (IOS)
|
|
|
+ # TODO: can be removed when CMake minimum required has reached 2.8.12
|
|
|
+ if (CMAKE_VERSION VERSION_LESS 2.8.12)
|
|
|
+ # Due to a bug in the CMake/Xcode generator (prior to version 2.8.12) where it has wrongly assumed the IOS bundle structure to be the same as MacOSX bundle structure,
|
|
|
+ # below temporary fix is required in order to solve the auto-linking issue when dependent libraries are changed
|
|
|
+ add_custom_target (FIX_DEPEND_HELPER ALL
|
|
|
+ if [ ${CMAKE_BINARY_DIR}/CMakeScripts/XCODE_DEPEND_HELPER.make -nt ${CMAKE_BINARY_DIR}/CMakeScripts/.fixed-depend-helper ]\; then sed -i '' 's/\/Contents\/MacOS//g' ${CMAKE_BINARY_DIR}/CMakeScripts/XCODE_DEPEND_HELPER.make\; touch ${CMAKE_BINARY_DIR}/CMakeScripts/.fixed-depend-helper\; fi
|
|
|
+ COMMENT "Checking if the CMake/Xcode depend helper scripts need to be fixed")
|
|
|
+ endif ()
|
|
|
+
|
|
|
+ # Due to a bug in the CMake/Xcode generator (still exists in 3.1) that prevents iOS targets (library and bundle) to be installed correctly
|
|
|
+ # (see http://public.kitware.com/Bug/bug_relationship_graph.php?bug_id=12506&graph=dependency),
|
|
|
+ # below temporary fix is required to work around the bug
|
|
|
+ add_custom_target (FIX_INSTALL ALL
|
|
|
+ if [ ${CMAKE_BINARY_DIR}/CMakeScripts/install_postBuildPhase.makeDebug -nt ${CMAKE_BINARY_DIR}/CMakeScripts/.fixed-install ]\; then sed -i '' 's/EFFECTIVE_PLATFORM_NAME//g' ${CMAKE_BINARY_DIR}/CMakeScripts/install_postBuildPhase.make*\; touch ${CMAKE_BINARY_DIR}/CMakeScripts/.fixed-install\; fi
|
|
|
+ COMMENT "Checking if the CMake/Xcode install scripts need to be fixed")
|
|
|
+endif ()
|
|
|
+
|
|
|
# Macro for adjusting target output name by dropping _suffix from the target name
|
|
|
macro (adjust_target_name)
|
|
|
string (REGEX REPLACE _.*$ "" OUTPUT_NAME ${TARGET_NAME})
|