Skip to content

Commit 9d972ba

Browse files
committed
add mac os support
1 parent 7f2148c commit 9d972ba

File tree

3 files changed

+57
-32
lines changed

3 files changed

+57
-32
lines changed

.travis.yml

+24-16
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,41 @@
11
language: cpp
2-
sudo: required
3-
dist: trusty
42
branches:
53
only:
64
- master
5+
- dev
76
os:
8-
- linux
7+
- linux
8+
- osx
99

1010
env:
11-
- CONFIG=Release
11+
- CONFIG=Release
1212

1313
branches:
1414
only:
15-
- master
16-
- dev
17-
15+
- master
16+
- dev
1817
before_install:
19-
- QT_VERSION_MM=59
20-
- QT_VERSION_FULL=591-trusty
21-
- sudo apt-add-repository --yes ppa:beineri/opt-qt$QT_VERSION_FULL && sudo apt-get update -qq && sudo apt-get install -qq qt${QT_VERSION_MM}base qt${QT_VERSION_MM}script qt${QT_VERSION_MM}tools && export CMAKE_PREFIX_PATH=/opt/qt${QT_VERSION_MM}
22-
- sudo apt-get install libopencv-dev
23-
- sudo apt-get install curl
24-
18+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
19+
brew update;
20+
brew install qt;
21+
brew install opencv;
22+
brew install curl;
23+
else
24+
QT_VERSION_MM=59;
25+
QT_VERSION_FULL=591-trusty;
26+
sudo apt-add-repository --yes ppa:beineri/opt-qt$QT_VERSION_FULL && sudo apt-get update -qq && sudo apt-get install -qq qt${QT_VERSION_MM}base qt${QT_VERSION_MM}script qt${QT_VERSION_MM}tools && export CMAKE_PREFIX_PATH=/opt/qt${QT_VERSION_MM};
27+
sudo apt-get install libopencv-dev;
28+
sudo apt-get install curl;
29+
fi
2530
before_script:
2631
- mkdir build
2732
- cd build
28-
- cmake .. -DCMAKE_BUILD_TYPE=$CONFIG -DDISABLE_MAINTAINER_CFLAGS=off
33+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
34+
cmake .. -DCMAKE_BUILD_TYPE=$CONFIG -DDISABLE_MAINTAINER_CFLAGS=off -DCMAKE_PREFIX_PATH=$(brew --prefix qt) -DQMAKE_PATH=$(brew --prefix qt)/bin;
35+
else
36+
cmake .. -DCMAKE_BUILD_TYPE=$CONFIG -DDISABLE_MAINTAINER_CFLAGS=off;
37+
fi
2938

3039
script:
3140
- cmake --build . --config $CONFIG
32-
- cmake --build . --config $CONFIG --target upload_file
33-
41+
- cmake --build . --config $CONFIG --target upload_file

CMakeLists.txt

+32-15
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ find_package(OpenCV REQUIRED)
5757
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${OpenCV_INCLUDE_DIRS})
5858

5959
qt5_wrap_ui(UI_TEST_HDRS src/main_window.ui )
60-
add_executable(PixelAnnotationTool
60+
add_executable(PixelAnnotationTool MACOSX_BUNDLE WIN32
6161
src/main_window.cpp
6262
src/main_window.h
6363
src/about_dialog.cpp
@@ -102,7 +102,7 @@ endif()
102102

103103
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/default.png DESTINATION ${DIR_NAME_RELEASE}/ )
104104

105-
if( MSVC )
105+
if( MSVC ) # ---------------------------- WINDOWS --------------------------------------------------------------------
106106
set(DLLs_DEP_RELEASE "${QT5_DIR}/../../bin/Qt5Widgets.dll"
107107
"${QT5_DIR}/../../bin/Qt5Gui.dll"
108108
"${QT5_DIR}/../../bin/Qt5Core.dll")
@@ -127,36 +127,53 @@ if( MSVC )
127127
COMMAND curl --upload-file "${NAME_RELEASE}.zip" https://transfer.sh/${NAME_RELEASE}.zip
128128
DEPENDS make_zip)
129129
endif()
130-
elseif(UNIX)
130+
elseif(APPLE) # ---------------------------- APPLE --------------------------------------------------------------------
131+
find_program(QMAKE_APP qmake PATHS /opt/qt59/bin/ ${QT5_DIR}/../../bin ${QMAKE_PATH})
132+
if( QMAKE_APP-NOTFOUND )
133+
message(STATUS "qmake is not found")
134+
else()
135+
message(STATUS "qmake is found here : ${QMAKE_APP}")
136+
add_custom_target(deploy_qt
137+
COMMAND echo "---------------------------------"
138+
COMMAND echo "${QMAKE_PATH}/macdeployqt ${DIR_NAME_RELEASE}/PixelAnnotationTool.app -dmg"
139+
COMMAND ${QMAKE_PATH}/macdeployqt ${DIR_NAME_RELEASE}/PixelAnnotationTool.app -dmg
140+
DEPENDS PixelAnnotationTool )
141+
if( NOT CURL-NOTFOUND )
142+
add_custom_target(upload_file
143+
COMMAND curl --upload-file ${DIR_NAME_RELEASE}/PixelAnnotationTool.dmg https://transfer.sh/PixelAnnotationTool_x86_64_${GIT_TAG}.dmg
144+
DEPENDS deploy_qt)
145+
endif()
146+
endif()
147+
else () # ---------------------------- LINUX --------------------------------------------------------------------
131148
add_custom_target(copy_pat
132149
COMMAND echo "=== copy_pat ==="
133150
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:PixelAnnotationTool> ${DIR_NAME_RELEASE}/PixelAnnotationTool
134151
DEPENDS PixelAnnotationTool)
135-
add_custom_target(extract_appimage
136-
COMMAND echo "=== extract_appimage ==="
137-
COMMAND chmod +x ${CMAKE_CURRENT_SOURCE_DIR}/scripts_to_build/linuxdeployqt-continuous-x86_64.AppImage
138-
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts_to_build/linuxdeployqt-continuous-x86_64.AppImage --appimage-extract
139-
DEPENDS copy_pat)
152+
add_custom_target(extract_appimage
153+
COMMAND echo "=== extract_appimage ==="
154+
COMMAND chmod +x ${CMAKE_CURRENT_SOURCE_DIR}/scripts_to_build/linuxdeployqt-continuous-x86_64.AppImage
155+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts_to_build/linuxdeployqt-continuous-x86_64.AppImage --appimage-extract
156+
DEPENDS copy_pat)
140157

141-
find_program(QMAKE_APP qmake PATHS /opt/qt59/bin/ ${QT5_DIR}/../../bin)
158+
find_program(QMAKE_APP qmake PATHS /opt/qt59/bin/ ${QT5_DIR}/../../bin ${QMAKE_PATH})
142159
if( QMAKE_APP-NOTFOUND )
143160
message(STATUS "qmake is not found")
144161
else()
145162
message(STATUS "qmake is found here : ${QMAKE_APP}")
146-
add_custom_target(linux_deploy_qt
147-
COMMAND echo "=== ${CMAKE_BINARY_DIR}/squashfs-root/usr/bin/linuxdeployqt ${DIR_NAME_RELEASE}/PixelAnnotationTool -appimage -qmake=${QMAKE_APP} ==="
148-
COMMAND ${CMAKE_BINARY_DIR}/squashfs-root/usr/bin/linuxdeployqt ${DIR_NAME_RELEASE}/PixelAnnotationTool -appimage -qmake=${QMAKE_APP}
149-
DEPENDS extract_appimage)
163+
add_custom_target(deploy_qt
164+
COMMAND echo "=== ${CMAKE_BINARY_DIR}/squashfs-root/usr/bin/linuxdeployqt ${DIR_NAME_RELEASE}/PixelAnnotationTool -appimage -qmake=${QMAKE_APP} ==="
165+
COMMAND ${CMAKE_BINARY_DIR}/squashfs-root/usr/bin/linuxdeployqt ${DIR_NAME_RELEASE}/PixelAnnotationTool -appimage -qmake=${QMAKE_APP}
166+
DEPENDS extract_appimage)
150167
add_custom_target(make_zip
151168
COMMAND echo "=== make_zip ==="
152169
COMMAND ${CMAKE_COMMAND} -E rename Application-x86_64.AppImage PixelAnnotationTool_x86_64_${GIT_TAG}.AppImage
153-
DEPENDS linux_deploy_qt)
170+
DEPENDS deploy_qt)
154171
if( NOT CURL-NOTFOUND )
155172
add_custom_target(upload_file
156173
COMMAND curl --upload-file PixelAnnotationTool_x86_64_${GIT_TAG}.AppImage https://transfer.sh/PixelAnnotationTool_x86_64_${GIT_TAG}.AppImage
157174
DEPENDS make_zip)
158175
endif()
159-
endif()
176+
endif()
160177
endif()
161178

162179

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ PixelAnnotationTool
22
============================
33

44
-----------------
5-
| **` Linux `** | **` Windows `** | **` Donate `** |
5+
| **` Linux/MAC `** | **` Windows `** | **` Donate `** |
66
|-----------------|---------------------|---------------------|
77
| [![Build Status](https://api.travis-ci.org/abreheret/PixelAnnotationTool.svg?branch=master)](https://travis-ci.org/abreheret/PixelAnnotationTool) | [![Appveyor Build Status](https://img.shields.io/appveyor/ci/abreheret/pixelannotationtool.svg)](https://ci.appveyor.com/project/abreheret/pixelannotationtool) | [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8K79VKWBS7352) |
88

0 commit comments

Comments
 (0)