1- cmake_minimum_required (VERSION 3.0 )
1+ cmake_minimum_required (VERSION 3.14 )
22project (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
2441set (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
4758set (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