소스 검색

support MacOS build

Le Tan 8 년 전
부모
커밋
b27e6817b0
5개의 변경된 파일134개의 추가작업 그리고 29개의 파일을 삭제
  1. 30 0
      .macos_bintray.json
  2. 47 28
      .travis.yml
  3. 50 0
      .travis_macos.sh
  4. BIN
      src/resources/icons/vnote.icns
  5. 7 1
      src/src.pro

+ 30 - 0
.macos_bintray.json

@@ -0,0 +1,30 @@
+{
+    "package": {
+        "name": "vnote",
+        "repo": "vnote",
+        "subject": "tamlok",
+        "desc": "Continuous deployment by Travis-CI",
+        "website_url": "https://github.com/tamlok/vnote",
+        "issue_tracker_url": "https://github.com/tamlok/vnote/issues",
+        "vcs_url": "https://github.com/tamlok/vnote.git",
+        "github_use_tag_release_notes": false,
+        "github_release_notes_file": "",
+        "licenses": ["MIT"],
+        "labels": ["Markdown", "Note-Taking", "Office", "Utils", "Efficiency"],
+        "public_download_numbers": true,
+        "public_stats": true
+    },
+
+    "version": {
+        "name": "1.0",
+        "desc": "VNote v1.0",
+        "released": "2017-01-25",
+        "vcs_tag": "1.0",
+        "gpgSign": false
+    },
+
+    "files":
+        [{"includePattern": "build/distrib/(VNote_.*\\.dmg)", "uploadPattern": "$1"}],
+
+    "publish": true
+}

+ 47 - 28
.travis.yml

@@ -3,36 +3,55 @@ sudo: required
 git:
   depth: 1
 language: cpp
-compiler: g++
-env:
-- version="1.0"
-addons:
-  apt:
-    sources:
-    - ubuntu-toolchain-r-test
-    packages:
-    - gcc-6
-    - g++-6
+
+matrix:
+  include:
+    - os: osx
+      compiler: clang
+      osx_image: xcode8
+    - os: linux
+      compiler: g++
+
+branches:
+  only:
+    - master
+
 before_install:
-- sudo apt-get -qq update
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo apt-get -qq update ; fi
+- export version="1.0"
+
 install:
-- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 100
-- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 100
-- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
-  p7zip-full
-- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
-  chrpath
-- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
-  tree
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install p7zip-full ; fi
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install chrpath ; fi
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install tree ; fi
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo apt-get install -qq gcc-6; sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 100 ; fi
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then sudo apt-get install -qq g++-6; sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 100 ; fi
+
 before_script:
-- chmod +x .travis_linux.sh
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then chmod +x .travis_linux.sh ; fi
+- if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then chmod +x .travis_macos.sh ; fi
+
 script:
-- TAG_NAME=${TRAVIS_TAG} CXX="g++-6" CC="gcc-6" ./.travis_linux.sh
+- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then CXX="g++-6" CC="gcc-6" ./.travis_linux.sh ; fi
+- if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then ./.travis_macos.sh ; fi
+
 deploy:
-  provider: bintray
-  file: "./.linux_bintray.json"
-  user: tamlok
-  key:
-    secure: vADlrYSusARnHxK3NTT3r1r6I/lrxyEuFKLOO73KXl6rvDywrrDDi6YsFekL14/o3clZKLOC8LbvA+4BKPVSoGTO4Dpx/i51fXphf+mMFB3QXSGnbqHm4+2ZnhCl62vfVlFeOPBLDO0KUBI8DCP0I+QogOUickXv3zYx69z6AudSxgjY7nPoN5jGSPgyId4r3o8Shrj1Fk1WtN6qciKyPne57v+jmvRlJTkoEfYkvwTRNMBlmaKy8Vj/CSoIvB8TH8bv3rhHLrN4o1QCwePdaX9G7xlImSpXqgRgzQVU3SRFN2bYTj5DZc1aFyA7iNOhmwgCLAN6OrqXyyJCbyywNhylfgad2rQANcfXiZw9ywooKEYafLDRuiK2G6Pk8m+R6Ded9JBoX9MSz/ZDxxfk4NmLO991wS7IK5aFTQfHZz5W8Tmh1rCphFwlDI/Rxs7ExbXu7INA8IhoLpOSmLIA5lfdC4fD8rv8mjy5gfpMkWlP8XATfi2eMH9uGj89aJa6xp7Bc2mfW3M71YHtYP/pyE/7Bk5vVonP8Cq9rK6OruMIUYtNmXoJnpte20ecSXj9yw7oTR27dhSx3XuAKOXiNpIau0CPxtXA5cSm5X0OS1Lt8RWrms0jp9Ch2dgxlNMpr0soF9DmwekhfHnVoOLyFBWBMDwvkx5TWij9FNAAJb4=
-  dry-run: true
-  on: master
+  - provider: bintray
+    file: "./.linux_bintray.json"
+    user: tamlok
+    key:
+      secure: vADlrYSusARnHxK3NTT3r1r6I/lrxyEuFKLOO73KXl6rvDywrrDDi6YsFekL14/o3clZKLOC8LbvA+4BKPVSoGTO4Dpx/i51fXphf+mMFB3QXSGnbqHm4+2ZnhCl62vfVlFeOPBLDO0KUBI8DCP0I+QogOUickXv3zYx69z6AudSxgjY7nPoN5jGSPgyId4r3o8Shrj1Fk1WtN6qciKyPne57v+jmvRlJTkoEfYkvwTRNMBlmaKy8Vj/CSoIvB8TH8bv3rhHLrN4o1QCwePdaX9G7xlImSpXqgRgzQVU3SRFN2bYTj5DZc1aFyA7iNOhmwgCLAN6OrqXyyJCbyywNhylfgad2rQANcfXiZw9ywooKEYafLDRuiK2G6Pk8m+R6Ded9JBoX9MSz/ZDxxfk4NmLO991wS7IK5aFTQfHZz5W8Tmh1rCphFwlDI/Rxs7ExbXu7INA8IhoLpOSmLIA5lfdC4fD8rv8mjy5gfpMkWlP8XATfi2eMH9uGj89aJa6xp7Bc2mfW3M71YHtYP/pyE/7Bk5vVonP8Cq9rK6OruMIUYtNmXoJnpte20ecSXj9yw7oTR27dhSx3XuAKOXiNpIau0CPxtXA5cSm5X0OS1Lt8RWrms0jp9Ch2dgxlNMpr0soF9DmwekhfHnVoOLyFBWBMDwvkx5TWij9FNAAJb4=
+    dry-run: false
+    on:
+      condition: $TRAVIS_OS_NAME = linux
+      branch: master
+  - provider: bintray
+    file: "./.macos_bintray.json"
+    user: tamlok
+    key:
+      secure: vADlrYSusARnHxK3NTT3r1r6I/lrxyEuFKLOO73KXl6rvDywrrDDi6YsFekL14/o3clZKLOC8LbvA+4BKPVSoGTO4Dpx/i51fXphf+mMFB3QXSGnbqHm4+2ZnhCl62vfVlFeOPBLDO0KUBI8DCP0I+QogOUickXv3zYx69z6AudSxgjY7nPoN5jGSPgyId4r3o8Shrj1Fk1WtN6qciKyPne57v+jmvRlJTkoEfYkvwTRNMBlmaKy8Vj/CSoIvB8TH8bv3rhHLrN4o1QCwePdaX9G7xlImSpXqgRgzQVU3SRFN2bYTj5DZc1aFyA7iNOhmwgCLAN6OrqXyyJCbyywNhylfgad2rQANcfXiZw9ywooKEYafLDRuiK2G6Pk8m+R6Ded9JBoX9MSz/ZDxxfk4NmLO991wS7IK5aFTQfHZz5W8Tmh1rCphFwlDI/Rxs7ExbXu7INA8IhoLpOSmLIA5lfdC4fD8rv8mjy5gfpMkWlP8XATfi2eMH9uGj89aJa6xp7Bc2mfW3M71YHtYP/pyE/7Bk5vVonP8Cq9rK6OruMIUYtNmXoJnpte20ecSXj9yw7oTR27dhSx3XuAKOXiNpIau0CPxtXA5cSm5X0OS1Lt8RWrms0jp9Ch2dgxlNMpr0soF9DmwekhfHnVoOLyFBWBMDwvkx5TWij9FNAAJb4=
+    dry-run: false
+    on:
+      condition: $TRAVIS_OS_NAME = osx
+      branch: master

+ 50 - 0
.travis_macos.sh

@@ -0,0 +1,50 @@
+#!/bin/bash
+project_dir=$(pwd)
+version="${version}.${TRAVIS_BUILD_NUMBER}"
+
+brew update > /dev/null
+brew install [email protected]
+QTDIR="/usr/local/opt/[email protected]"
+PATH="$QTDIR/bin:$PATH"
+LDFLAGS=-L$QTDIR/lib
+CPPFLAGS=-I$QTDIR/include
+
+# Build your app
+cd ${project_dir}
+mkdir build
+cd build
+qmake -v
+qmake -config release ../VNote.pro
+make -j2
+
+git clone https://github.com/aurelien-rainone/macdeployqtfix.git
+
+# Package DMG from build/src/VNote.app directory
+cd src/
+
+sed -i -e 's/com.yourcompany.VNote/com.tamlok.VNote/g' VNote.app/Contents/Info.plist
+$QTDIR/bin/macdeployqt VNote.app
+python ../macdeployqtfix/macdeployqtfix.py VNote.app/Contents/MacOS/VNote $QTDIR
+
+# Fix Helpers/QtWebEngineProcess.app
+cd VNote.app/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/Helpers
+$QTDIR/bin/macdeployqt QtWebEngineProcess.app
+python ${project_dir}/build/macdeployqtfix/macdeployqtfix.py QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess $QTDIR
+
+cd ${project_dir}/build
+mkdir -p distrib/VNote
+cd distrib/VNote
+mv ../../src/VNote.app ./
+cp "${project_dir}/LICENSE" "LICENSE"
+cp "${project_dir}/README.md" "README.md"
+echo "${version}" > version
+echo "${TRAVIS_COMMIT}" >> version
+
+ln -s /Applications ./Applications
+
+cd ..
+hdiutil create -srcfolder ./VNote -format UDBZ ./VNote.dmg
+mv VNote.dmg VNote_${version}_mac_X64.dmg
+cd ..
+
+exit 0

BIN
src/resources/icons/vnote.icns


+ 7 - 1
src/src.pro

@@ -4,7 +4,7 @@
 #
 #-------------------------------------------------
 
-QT       += core gui webenginewidgets webchannel network
+QT       += core gui webenginewidgets webchannel network svg
 
 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
@@ -12,6 +12,7 @@ TARGET = VNote
 TEMPLATE = app
 
 RC_ICONS = resources/icons/vnote.ico
+ICON = resources/icons/vnote.icns
 
 TRANSLATIONS += translations/vnote_zh_CN.ts
 
@@ -97,6 +98,11 @@ RESOURCES += \
     vnote.qrc \
     translations.qrc
 
+macx {
+    LIBS += -L/usr/local/lib
+    INCLUDEPATH += /usr/local/include
+}
+
 win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../hoedown/release/ -lhoedown
 else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../hoedown/debug/ -lhoedown
 else:unix: LIBS += -L$$OUT_PWD/../hoedown/ -lhoedown