diff --git a/3rdparty/kde/CMakeLists.txt b/3rdparty/kde/CMakeLists.txt index d5e07dcea2..78f0dcce03 100644 --- a/3rdparty/kde/CMakeLists.txt +++ b/3rdparty/kde/CMakeLists.txt @@ -4,7 +4,7 @@ set(gammaray_kitemmodels_srcs krecursivefilterproxymodel.cpp ) -add_library(gammaray_kitemmodels SHARED ${gammaray_kitemmodels_srcs}) +add_library(gammaray_kitemmodels ${GAMMARAY_LIBRARY_TYPE} ${gammaray_kitemmodels_srcs}) if(Qt5Core_FOUND) target_link_libraries(gammaray_kitemmodels LINK_PUBLIC Qt5::Core) diff --git a/Install.txt b/Install.txt index e677cd706f..1b56471e3d 100644 --- a/Install.txt +++ b/Install.txt @@ -70,6 +70,25 @@ or $ adb forward --remove-all to remove all forwards +Building Gammaray probe for IOS (OSX "El Capitan" / Qt 5.7 / Xcode 8 / iphone SDK 10.0): +Make sure you have gdb and qmake in your path +% export QT_DIR= <--- set to QT's home +% mkdir build +% cd build +% cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-IOS.cmake -DCMAKE_PREFIX_PATH=${QT_DIR}/5.7/ios -DGAMMARAY_STATIC_PROBE=TRUE -DCMAKE_INSTALL_PREFIX=$SYSROOT/usr/ -G Xcode .. +% /usr/bin/xcodebuild -project GammaRay.xcodeproj build -target gammaray_probe -configuration Release + +Using Gammaray on IOS: +-modify your main.cpp and include the following call from probe/hooks.h + GammaRay::Hooks::installHooks(); +- link your QT IOS app with the following libraries: + libgammaray_kitemmodels-qt5_7-arm.a + libgammaray_core-qt5_7-arm.a + libgammaray_common-qt5_7-arm.a + libgammaray_common_internal.a + gammaray_probe.a +- deploy and run your app + == Cross-compiling GammaRay == You'll find more information on this in the wiki: https://github.com/KDAB/GammaRay/wiki/Cross-compiling-GammaRay diff --git a/cmake/Toolchain-IOS.cmake b/cmake/Toolchain-IOS.cmake new file mode 100644 index 0000000000..46d4507ea7 --- /dev/null +++ b/cmake/Toolchain-IOS.cmake @@ -0,0 +1,66 @@ +# Basic cmake toolchain file for IOS +# Assumptions: toolchain is in path, $SYSROOT points to the sysroot +# + +# Copyright (c) 2013-2016 Klarälvdalens Datakonsult AB, a KDAB Group company +# All rights reserved. +# +# Author: Paul Nader +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Set the Base SDK (only change the SDKVER value, if for instance, you are building for iOS 10.0): +set(SDKVER "10.0") +set(DEVROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer") +set(SDKROOT "${DEVROOT}/SDKs/iPhoneOS${SDKVER}.sdk") +if(EXISTS ${SDKROOT}) + set(CMAKE_OSX_SYSROOT "${SDKROOT}") +else() + message("Warning, iOS Base SDK path not found: " ${SDKROOT}) +endif() + +set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)") + +set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos") +set(CMAKE_MACOSX_BUNDLE YES) +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") +set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING "NO") +set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") +set(CMAKE_XCODE_ATTRIBUTE_PRESERVE_DEAD_CODE_INITS_AND_TERMS "YES") +set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS "armv7") + +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_PROCESSOR "armv7") +set(CMAKE_C_COMPILER clang) +set(CMAKE_CXX_COMPILER clang++) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --sysroot=$ENV{SYSROOT}") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=$ENV{SYSROOT}") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=$ENV{SYSROOT}") +set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --sysroot=$ENV{SYSROOT}") + +set(CMAKE_FIND_ROOT_PATH "$ENV{SYSROOT}") + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/probe/CMakeLists.txt b/probe/CMakeLists.txt index 5f78d35b5b..ab03087f30 100644 --- a/probe/CMakeLists.txt +++ b/probe/CMakeLists.txt @@ -28,7 +28,7 @@ endif() # probe lib if(APPLE) # DYLD_INSERT_LIBRARIES only works with real shared libraries, not modules - add_library(gammaray_probe SHARED ${gammaray_probe_srcs}) + add_library(gammaray_probe ${GAMMARAY_LIBRARY_TYPE} ${gammaray_probe_srcs}) if(NOT GAMMARAY_INSTALL_QT_LAYOUT) set_target_properties(gammaray_probe PROPERTIES INSTALL_RPATH "@loader_path/../../../Frameworks") endif()