Skip to content

Commit 7972e5e

Browse files
authored
Merge pull request #93 from ReimuNotMoe/develop
Merge Develop
2 parents e33e16e + 01b38e1 commit 7972e5e

36 files changed

+1556
-1527
lines changed

.gitlab-ci.yml

Lines changed: 7 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,147 +1,16 @@
11
before_script:
22
- apt update
3-
- apt install -y build-essential cmake file wget rpm libboost-program-options-dev
3+
- DEBIAN_FRONTEND=noninteractive apt install -yq build-essential cmake git
44

5-
build:debian:9:
5+
build:ubuntu:20.04:
66
stage: build
7-
image: debian:9
8-
artifacts:
9-
untracked: true
10-
script:
11-
- mkdir build
12-
- cd build
13-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:debian:9'
14-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:debian:9'
15-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
16-
- cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='-O1 -g' -DSTATIC_BUILD=0 ..
17-
- make
18-
19-
package:debian:9:
20-
stage: deploy
21-
image: debian:9
22-
dependencies:
23-
- build:debian:9
24-
script:
25-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:debian:9'
26-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:debian:9'
27-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
28-
- cd build && make package
29-
artifacts:
30-
paths:
31-
- "build/*.deb"
32-
33-
34-
build:ubuntu:18.04:
35-
stage: build
36-
image: ubuntu:18.04
37-
artifacts:
38-
untracked: true
39-
script:
40-
- mkdir build
41-
- cd build
42-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:18.04'
43-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:18.04'
44-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
45-
- cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='-O1 -g' -DSTATIC_BUILD=0 ..
46-
- make
47-
48-
package:ubuntu:18.04:
49-
stage: deploy
50-
image: ubuntu:18.04
51-
dependencies:
52-
- build:ubuntu:18.04
53-
script:
54-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:18.04'
55-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:18.04'
56-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
57-
- cd build && make package
58-
artifacts:
59-
paths:
60-
- "build/*.deb"
61-
62-
63-
build:ubuntu:19.04:
64-
stage: build
65-
image: ubuntu:19.04
66-
artifacts:
67-
untracked: true
68-
script:
69-
- mkdir build
70-
- cd build
71-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:19.04'
72-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:19.04'
73-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
74-
- cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='-O1 -g' -DSTATIC_BUILD=0 ..
75-
- make
76-
77-
package:ubuntu:19.04:
78-
stage: deploy
79-
image: ubuntu:19.04
80-
dependencies:
81-
- build:ubuntu:19.04
82-
script:
83-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:19.04'
84-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:19.04'
85-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
86-
- cd build && make package
7+
image: ubuntu:20.04
878
artifacts:
889
paths:
89-
- "build/*.deb"
90-
91-
build:ubuntu:19.10:
92-
stage: build
93-
image: ubuntu:19.10
94-
artifacts:
95-
untracked: true
10+
- "build/ydotool"
11+
- "build/ydotoold"
9612
script:
9713
- mkdir build
9814
- cd build
99-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:19.10'
100-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:19.10'
101-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
102-
- cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='-O1 -g' -DDYNAMIC_BUILD=0 ..
103-
- make
104-
105-
package:ubuntu:19.10:
106-
stage: deploy
107-
image: ubuntu:19.10
108-
dependencies:
109-
- build:ubuntu:19.10
110-
script:
111-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:19.10'
112-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:19.10'
113-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
114-
- cd build && ls -hl && make
115-
artifacts:
116-
paths:
117-
- "build/*.deb"
118-
119-
120-
build:static:
121-
stage: build
122-
image: ubuntu:18.04
123-
artifacts:
124-
untracked: true
125-
script:
126-
- mkdir build
127-
- cd build
128-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:18.04'
129-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:18.04'
130-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
131-
- cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='-O1 -g' -DDYNAMIC_BUILD=0 ..
132-
- make
133-
134-
package:static:
135-
stage: deploy
136-
image: ubuntu:18.04
137-
dependencies:
138-
- build:static
139-
script:
140-
- wget -O libuInputPlus.deb 'https://gitlab.com/ReimuNotMoe/libuInputPlus/-/jobs/artifacts/master/raw/build/libuInputPlus_0.1.4_.deb?job=package:ubuntu:18.04'
141-
- wget -O libevdevPlus.deb 'https://gitlab.com/ReimuNotMoe/libevdevPlus/-/jobs/artifacts/master/raw/build/libevdevPlus_0.1.1_.deb?job=package:ubuntu:18.04'
142-
- dpkg -i libuInputPlus.deb && dpkg -i libevdevPlus.deb
143-
- cd build && ls -hl && make
144-
artifacts:
145-
paths:
146-
- "build/ydotool_static"
147-
- "build/ydotoold_static"
15+
- cmake -DCMAKE_CXX_FLAGS='-O2' ..
16+
- make -j2

CMakeLists.txt

Lines changed: 50 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,49 @@
1-
cmake_minimum_required(VERSION 3.0)
1+
cmake_minimum_required(VERSION 3.14)
22
project(ydotool)
33

4-
set(CMAKE_CXX_STANDARD 14)
5-
set(PROJECT_VERSION "0.1.5")
6-
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
7-
set(CPACK_PACKAGE_VERSION_MAJOR "0")
8-
set(CPACK_PACKAGE_VERSION_MINOR "1")
9-
set(CPACK_PACKAGE_VERSION_PATCH "5")
10-
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Generic Linux command-line automation tool (no X!)")
11-
set(CPACK_PACKAGE_CONTACT "Reimu NotMoe <https://github.com/ReimuNotMoe>")
12-
set(CMAKE_PROJECT_HOMEPAGE_URL "https://github.com/ReimuNotMoe/ydotool")
13-
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${CMAKE_PROJECT_HOMEPAGE_URL})
14-
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.14), libstdc++6 (>= 5.2), libuinputplus (>= 0.1.3), libevdevplus (>= 0.1.0)")
15-
set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME}_${PROJECT_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
16-
set(CPACK_DEBIAN_DEBUGINFO_PACKAGE yes)
17-
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
18-
set(CPACK_GENERATOR "DEB;RPM;TXZ")
19-
set(CPACK_SOURCE_GENERATOR "DEB;RPM;TXZ")
20-
include(CPack)
4+
set(CMAKE_CXX_STANDARD 17)
215

22-
include(GNUInstallDirs)
6+
set(CPM_DOWNLOAD_VERSION 0.27.5)
7+
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
8+
9+
if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
10+
message(STATUS "Downloading CPM.cmake")
11+
file(DOWNLOAD https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake ${CPM_DOWNLOAD_LOCATION})
12+
endif()
13+
14+
include(${CPM_DOWNLOAD_LOCATION})
15+
16+
CPMAddPackage(
17+
NAME IODash
18+
GITHUB_REPOSITORY YukiWorkshop/IODash
19+
VERSION 0.1.0
20+
)
21+
22+
CPMAddPackage(
23+
NAME libevdevPlus
24+
GITHUB_REPOSITORY YukiWorkshop/libevdevPlus
25+
VERSION 0.2.1
26+
)
27+
28+
CPMAddPackage(
29+
NAME libuInputPlus
30+
GITHUB_REPOSITORY YukiWorkshop/libuInputPlus
31+
VERSION 0.2.1
32+
)
33+
34+
CPMAddPackage(
35+
NAME cxxopts
36+
GITHUB_REPOSITORY jarro2783/cxxopts
37+
VERSION 3.0.0
38+
GIT_TAG 2d8e17c4f88efce80e274cb03eeb902e055a91d3
39+
)
2340

2441
set(SOURCE_FILES_LIBRARY
2542
CommonIncludes.hpp
26-
Library/libydotool.cpp Library/libydotool.hpp
2743
Library/Tool.hpp Library/Tool.cpp
28-
# Library/Transport.cpp Library/Transport.hpp
29-
Library/Instance.cpp Library/Instance.hpp
30-
Library/Utils.cpp Library/Utils.hpp Tools/Tools.hpp
31-
Tools/MouseMoveRelative/MouseMoveRelative.hpp Tools/MouseMoveRelative/MouseMoveRelative.cpp
32-
Tools/MouseUp/MouseUp.hpp Tools/MouseUp/MouseUp.cpp
33-
Tools/MouseDown/MouseDown.hpp Tools/MouseDown/MouseDown.cpp
44+
Library/Utils.cpp Library/Utils.hpp
45+
Tools/Tools.hpp
46+
Tools/Sleep/Sleep.hpp Tools/Sleep/Sleep.cpp
3447
Tools/MouseMove/MouseMove.hpp Tools/MouseMove/MouseMove.cpp
3548
Tools/Key/Key.hpp Tools/Key/Key.cpp
3649
Tools/Click/Click.hpp Tools/Click/Click.cpp
@@ -39,49 +52,22 @@ set(SOURCE_FILES_LIBRARY
3952
)
4053
# Library/Transports/UnixSocket.cpp Library/Transports/UnixSocket.hpp )
4154

42-
set(SOURCE_FILES_DAEMON
43-
CommonIncludes.hpp
44-
Daemon/ydotoold.cpp Daemon/ydotoold.hpp)
55+
set(SOURCE_FILES_DAEMON CommonIncludes.hpp Daemon/ydotoold.cpp Daemon/ydotoold.hpp Library/Utils.hpp Library/Utils.cpp)
4556

4657

4758
set(SOURCE_FILES_CLIENT
4859
CommonIncludes.hpp
4960
Client/ydotool.cpp Client/ydotool.hpp)
5061

51-
link_libraries(-L.)
62+
include_directories(${libevdevPlus_SOURCE_DIR})
63+
include_directories(${libuInputPlus_SOURCE_DIR})
64+
include_directories(${IODash_SOURCE_DIR})
65+
include_directories(${IODash_SOURCE_DIR}/cpp_modules/portable-endian) # FIXME
66+
include_directories(${cxxopts_SOURCE_DIR}/include)
5267

53-
if (NOT DEFINED DYNAMIC_BUILD OR (${DYNAMIC_BUILD}))
54-
add_library(ydotool_library SHARED ${SOURCE_FILES_LIBRARY})
55-
set_target_properties(ydotool_library PROPERTIES OUTPUT_NAME ydotool)
56-
set_target_properties(ydotool_library PROPERTIES VERSION ${PROJECT_VERSION})
57-
set_target_properties(ydotool_library PROPERTIES SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
68+
add_executable(ydotoold ${SOURCE_FILES_DAEMON})
69+
target_link_libraries(ydotoold PUBLIC cxxopts uInputPlus evdevPlus)
5870

59-
target_link_libraries(ydotool_library dl boost_program_options uInputPlus evdevPlus)
60-
61-
add_executable(ydotoold ${SOURCE_FILES_DAEMON})
62-
target_link_libraries(ydotoold ydotool_library dl pthread boost_program_options uInputPlus evdevPlus)
63-
64-
add_executable(ydotool ${SOURCE_FILES_CLIENT})
65-
target_link_libraries(ydotool ydotool_library boost_program_options pthread uInputPlus evdevPlus)
66-
set_target_properties(ydotool PROPERTIES OUTPUT_NAME ydotool)
67-
68-
install(TARGETS ydotool_library DESTINATION ${CMAKE_INSTALL_LIBDIR})
69-
install(TARGETS ydotoold ydotool DESTINATION ${CMAKE_INSTALL_BINDIR})
70-
endif()
71-
72-
if (NOT DEFINED STATIC_BUILD OR (${STATIC_BUILD}))
73-
add_library(ydotool_library_static STATIC ${SOURCE_FILES_LIBRARY})
74-
set_target_properties(ydotool_library_static PROPERTIES OUTPUT_NAME ydotool)
75-
target_link_libraries(ydotool_library_static dl boost_program_options uInputPlus evdevPlus)
76-
77-
add_executable(ydotoold_static ${SOURCE_FILES_DAEMON})
78-
target_link_libraries(ydotoold_static ydotool_library_static dl pthread boost_program_options uInputPlus evdevPlus -static)
79-
set_target_properties(ydotoold_static PROPERTIES OUTPUT_NAME ydotoold_static)
80-
81-
add_executable(ydotool_static ${SOURCE_FILES_CLIENT})
82-
target_link_libraries(ydotool_static ydotool_library_static boost_program_options pthread uInputPlus evdevPlus -static)
83-
set_target_properties(ydotool_static PROPERTIES OUTPUT_NAME ydotool_static)
84-
85-
install(TARGETS ydotool_library_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
86-
install(TARGETS ydotoold_static ydotool_static DESTINATION ${CMAKE_INSTALL_BINDIR})
87-
endif()
71+
add_library(ydotool_library STATIC ${SOURCE_FILES_LIBRARY})
72+
add_executable(ydotool ${SOURCE_FILES_CLIENT})
73+
target_link_libraries(ydotool ydotool_library dl pthread uInputPlus evdevPlus)

0 commit comments

Comments
 (0)