diff --git a/.gitignore b/.gitignore index 1d0dbf664..d9799e119 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ renderdoc/driver/vulkan/renderdoc_capture.json renderdocui/3rdparty/ironpython/pythonlibs.zip qrenderdoc/generated/ qrenderdoc/3rdparty/qt +.DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt index 165bccacb..9bcdd544b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,26 @@ if(WIN32) message(FATAL_ERROR "CMake is not needed on Windows, just open and build renderdoc.sln") endif() +message(STATUS "Calculating version") + +execute_process( + COMMAND awk "{ if (/_MAJOR [0-9]/) { print $3 } }" renderdoc/api/replay/version.h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE RENDERDOC_VERSION_MAJOR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + +execute_process( + COMMAND awk "{ if (/_MINOR [0-9]/) { print $3 } }" renderdoc/api/replay/version.h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE RENDERDOC_VERSION_MINOR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + +set(RENDERDOC_VERSION "${RENDERDOC_VERSION_MAJOR}.${RENDERDOC_VERSION_MINOR}") + +message(STATUS "Building RenderDoc version ${RENDERDOC_VERSION}") + if(APPLE) message(STATUS "Disabling Vulkan driver on apple") set(ENABLE_VULKAN OFF CACHE BOOL "" FORCE) diff --git a/qrenderdoc/CMakeLists.txt b/qrenderdoc/CMakeLists.txt index 8ef625c76..7ff4a0b7d 100644 --- a/qrenderdoc/CMakeLists.txt +++ b/qrenderdoc/CMakeLists.txt @@ -20,13 +20,35 @@ if(QRENDERDOC_NO_CXX11_REGEX) set(QMAKE_CXXFLAGS "-DNO_CXX11_REGEX=1") endif() +if(APPLE) + add_custom_command(OUTPUT RenderDoc.icns + COMMAND echo Creating OS X Icon + COMMAND mkdir -p RenderDoc.iconset + COMMAND qlmanage -t -s 1024 -o . ${CMAKE_CURRENT_SOURCE_DIR}/Resources/logo.svg + COMMAND sips -z 16 16 logo.svg.png --out RenderDoc.iconset/icon_16x16.png + COMMAND sips -z 32 32 logo.svg.png --out RenderDoc.iconset/icon_16x16@2x.png + COMMAND sips -z 32 32 logo.svg.png --out RenderDoc.iconset/icon_32x32.png + COMMAND sips -z 64 64 logo.svg.png --out RenderDoc.iconset/icon_32x32@2x.png + COMMAND sips -z 128 128 logo.svg.png --out RenderDoc.iconset/icon_128x128.png + COMMAND sips -z 256 256 logo.svg.png --out RenderDoc.iconset/icon_128x128@2x.png + COMMAND sips -z 256 256 logo.svg.png --out RenderDoc.iconset/icon_256x256.png + COMMAND sips -z 512 512 logo.svg.png --out RenderDoc.iconset/icon_256x256@2x.png + COMMAND sips -z 512 512 logo.svg.png --out RenderDoc.iconset/icon_512x512.png + COMMAND sips -z 1024 1024 logo.svg.png --out RenderDoc.iconset/icon_512x512@2x.png + COMMAND iconutil -c icns RenderDoc.iconset + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Resources/logo.svg) +else() + add_custom_command(OUTPUT RenderDoc.icns COMMAND touch RenderDoc.icns) +endif() + # The case here is deliberately not matching the executable name # This means the custom command doesn't create this output file, # which causes CMake to rerun this target every time so that Qt # can do dependency checking and rebuild anything necessary. add_custom_command(OUTPUT QRenderDoc - COMMAND qmake "CONFIG+=${QMAKE_CONFIG}" "QMAKE_CC=${CMAKE_C_COMPILER}" "QMAKE_CXX=${CMAKE_CXX_COMPILER}" "QMAKE_LINK=${CMAKE_CXX_COMPILER}" "QMAKE_CXXFLAGS+=${warning_flags}" "QMAKE_CXXFLAGS+=${QMAKE_CXXFLAGS}" "QMAKE_LFLAGS+=${QMAKE_LDFLAGS}" "DEFINES+=GIT_COMMIT_HASH_LITERAL=${GIT_COMMIT_HASH}" "DESTDIR=${output_dir}" ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND $(MAKE)) + COMMAND qmake "CONFIG+=${QMAKE_CONFIG}" "QMAKE_CC=${CMAKE_C_COMPILER}" "QMAKE_CXX=${CMAKE_CXX_COMPILER}" "QMAKE_LINK=${CMAKE_CXX_COMPILER}" "QMAKE_CXXFLAGS+=${warning_flags}" "QMAKE_CXXFLAGS+=${QMAKE_CXXFLAGS}" "QMAKE_LFLAGS+=${QMAKE_LDFLAGS}" "DEFINES+=GIT_COMMIT_HASH_LITERAL=${GIT_COMMIT_HASH}" "RENDERDOC_VERSION=${RENDERDOC_VERSION}" "DESTDIR=${output_dir}" "OSX_ICONFILE=${CMAKE_CURRENT_BINARY_DIR}/RenderDoc.icns" ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND $(MAKE) + DEPENDS RenderDoc.icns) add_custom_target(build-qrenderdoc ALL DEPENDS QRenderDoc DEPENDS renderdoc) install (PROGRAMS ${output_dir}/qrenderdoc DESTINATION bin) diff --git a/qrenderdoc/qrenderdoc.pro b/qrenderdoc/qrenderdoc.pro index 87ec7152b..42fc989a7 100644 --- a/qrenderdoc/qrenderdoc.pro +++ b/qrenderdoc/qrenderdoc.pro @@ -89,6 +89,10 @@ win32 { macx: { DEFINES += RENDERDOC_PLATFORM_POSIX RENDERDOC_PLATFORM_APPLE + ICON = $$OSX_ICONFILE + + INFO_PLIST_PATH = $$shell_quote($${DESTDIR}/$${TARGET}.app/Contents/Info.plist) + QMAKE_POST_LINK += /usr/libexec/PlistBuddy -c \"Add :CFBundleShortVersionString string $${RENDERDOC_VERSION}.0\" -c \"Set :CFBundleIdentifier org.renderdoc.qrenderdoc\" $${INFO_PLIST_PATH} } else { QT += x11extras DEFINES += RENDERDOC_PLATFORM_POSIX RENDERDOC_PLATFORM_LINUX RENDERDOC_WINDOWING_XLIB RENDERDOC_WINDOWING_XCB