Skip to content

Commit a108879

Browse files
committed
[feat] global: deprecate qmake for cmake
1 parent 8930f49 commit a108879

15 files changed

Lines changed: 252 additions & 336 deletions

.github/workflows/build.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
name: FastTrack_build
22

33
on:
4-
push:
5-
branches: [master]
4+
workflow_dispatch:
65

76
env:
87
QT_VERSION: 6.7.2

.github/workflows/build_cli.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
name: FastTrack-Cli_build
22

33
on:
4-
push:
5-
branches: [master]
4+
workflow_dispatch:
65

76
env:
87
QT_VERSION: 6.7.2

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ env:
1313

1414
jobs:
1515
test_linux:
16-
runs-on: ubuntu-20.04
16+
runs-on: ubuntu-22.04
1717
steps:
1818
- uses: actions/checkout@v2
1919
- uses: actions/setup-python@v2

CMakeLists.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
project(FastTrack)
3+
4+
set(CMAKE_CXX_STANDARD 17)
5+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+
7+
set(CMAKE_AUTOMOC ON)
8+
set(CMAKE_AUTOUIC ON)
9+
set(CMAKE_AUTORCC ON)
10+
11+
if(NOT CMAKE_BUILD_TYPE)
12+
set(CMAKE_BUILD_TYPE Release)
13+
endif()
14+
15+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
16+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
17+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
18+
19+
add_subdirectory(src/)
20+
21+
option(SKIP_TEST "Skip building tests" OFF)
22+
23+
if(NOT SKIP_TEST)
24+
enable_testing()
25+
add_custom_target(check
26+
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
27+
DEPENDS test-fasttrack
28+
)
29+
add_subdirectory(test)
30+
endif()

FastTrack.pri

Lines changed: 0 additions & 1 deletion
This file was deleted.

FastTrack.pro

Lines changed: 0 additions & 11 deletions
This file was deleted.

run.sh

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,43 +12,42 @@ fi
1212
if [ "$1" = "release" ]; then
1313
make distclean
1414
set -e
15-
qmake6 CONFIG+=release FastTrack.pro
15+
mkdir -p build
16+
cd build
17+
cmake -DCMAKE_BUILD_TYPE=Release ..
1618
make
1719
make check
1820
make clean
19-
src/build/fasttrack
21+
bin/fasttrack
2022
fi
2123

2224
if [ "$1" = "debug" ]; then
2325
set -e
24-
qmake6 CONFIG+=debug QMAKE_CXXFLAGS+="-Wall -Wextra -g -Wconversion" FastTrack.pro
26+
mkdir -p build
27+
cd build
28+
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall -Wextra -g -Wconversion" ..
2529
make
2630
make check
27-
src/build/fasttrack
31+
bin/fasttrack
2832
fi
2933

3034
if [ "$1" = "profile" ]; then
3135
set -e
32-
qmake6 QMAKE_CXXFLAGS+=-pg QMAKE_LFLAGS+=-pg CONFIG+=debug FastTrack.pro
36+
mkdir -p build
37+
cd build
38+
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-pg" -DCMAKE_EXE_LINKER_FLAGS="-pg" ..
3339
make
3440
make check
35-
src/build/fasttrack
36-
gprof src/build/fasttrack src/build/gmon.out > profiling.txt
41+
bin/fasttrack
42+
gprof bin/fasttrack bin/gmon.out > profiling.txt
3743
fi
3844

3945
if [ "$1" = "ci" ]; then
4046
make distclean
4147
set -e
42-
qmake6 CONFIG+=release src/FastTrack.pro
48+
mkdir -p build
49+
cd build
50+
cmake -DCMAKE_BUILD_TYPE=Release ../
4351
make
44-
fi
45-
46-
if [ "$1" = "cli" ]; then
47-
make distclean
48-
set -e
49-
qmake6 CONFIG+=release src/FastTrack-Cli.pro
50-
make
51-
make check
5252
make clean
53-
cd build_cli
5453
fi

src/CMakeLists.txt

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
project(FastTrackApp VERSION 6.3.4)
3+
4+
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Network Svg Sql)
5+
6+
add_executable(fasttrack
7+
updater.cpp
8+
main.cpp
9+
mainwindow.cpp
10+
tracking.cpp
11+
Hungarian.cpp
12+
replay.cpp
13+
batch.cpp
14+
interactive.cpp
15+
data.cpp
16+
annotation.cpp
17+
trackingmanager.cpp
18+
videoreader.cpp
19+
timeline.cpp
20+
autolevel.cpp
21+
imageviewer.cpp
22+
23+
updater.h
24+
mainwindow.h
25+
tracking.h
26+
Hungarian.h
27+
replay.h
28+
batch.h
29+
interactive.h
30+
data.h
31+
annotation.h
32+
trackingmanager.h
33+
videoreader.h
34+
timeline.h
35+
autolevel.h
36+
imageviewer.h
37+
38+
mainwindow.ui
39+
replay.ui
40+
trackingmanager.ui
41+
batch.ui
42+
interactive.ui
43+
timeline.ui
44+
45+
resources.qrc
46+
assets/theme.qrc
47+
)
48+
49+
target_compile_definitions(fasttrack PRIVATE APP_VERSION="${PROJECT_VERSION}")
50+
51+
add_executable(fasttrack-cli
52+
fasttrack-cli.cpp
53+
tracking.cpp
54+
videoreader.cpp
55+
Hungarian.cpp
56+
57+
tracking.h
58+
videoreader.h
59+
Hungarian.h
60+
)
61+
62+
target_compile_definitions(fasttrack-cli PRIVATE APP_VERSION="${PROJECT_VERSION}")
63+
64+
function(configure_target target_name)
65+
if(UNIX AND NOT APPLE)
66+
target_compile_options(${target_name} PRIVATE -O3)
67+
target_include_directories(${target_name} PRIVATE /usr/include/opencv4 /usr/local/include/opencv4 ${CMAKE_CURRENT_SOURCE_DIR})
68+
target_link_libraries(${target_name} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Sql Qt6::Network
69+
opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs
70+
opencv_videoio opencv_video opencv_calib3d opencv_photo opencv_features2d)
71+
elseif(WIN32)
72+
target_compile_options(${target_name} PRIVATE -O3)
73+
target_include_directories(${target_name} PRIVATE "${CMAKE_SOURCE_DIR}/../OpenCV_MinGW_64/include" ${CMAKE_CURRENT_SOURCE_DIR})
74+
link_directories("${CMAKE_SOURCE_DIR}/../OpenCV_MinGW_64/lib")
75+
target_link_libraries(${target_name} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Sql Qt6::Network opencv_world4100)
76+
elseif(APPLE)
77+
target_compile_options(${target_name} PRIVATE -std=c++1z -stdlib=libc++ -O3)
78+
find_package(PkgConfig REQUIRED)
79+
pkg_check_modules(OPENCV REQUIRED opencv4)
80+
target_include_directories(${target_name} PRIVATE ${OPENCV_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR})
81+
target_link_libraries(${target_name} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Sql Qt6::Network ${OPENCV_LIBRARIES})
82+
endif()
83+
endfunction()
84+
85+
configure_target(fasttrack)
86+
configure_target(fasttrack-cli)
87+
88+
if(UNIX AND NOT APPLE)
89+
install(TARGETS fasttrack DESTINATION /usr/bin)
90+
install(FILES sh.fasttrack.fasttrack.desktop
91+
DESTINATION share/applications)
92+
install(FILES sh.fasttrack.fasttrack.metainfo.xml
93+
DESTINATION share/metainfo)
94+
install(FILES src/assets/fasttrack.png
95+
DESTINATION share/icons)
96+
install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/fasttrack_en.qm
97+
DESTINATION share/locale)
98+
install(FILES ${CMAKE_SOURCE_DIR}/LICENSE
99+
DESTINATION share/licenses/fasttrack)
100+
endif()
101+
102+
install(TARGETS fasttrack-cli DESTINATION /usr/bin)
103+
install(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/licenses/fasttrack)

src/FastTrack-Cli.pro

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)