|
@@ -1,11 +1,15 @@
|
1
|
1
|
cmake_minimum_required(VERSION 3.1.3)
|
2
|
2
|
|
|
3
|
+project(slop VERSION 7.3.49 LANGUAGES CXX)
|
|
4
|
+
|
3
|
5
|
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build (Debug or Release)")
|
4
|
6
|
|
5
|
|
-if ( NOT CMAKE_INSTALL_PREFIX )
|
6
|
|
- set(CMAKE_INSTALL_PREFIX "/usr")
|
|
7
|
+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
8
|
+ set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "..." FORCE)
|
7
|
9
|
endif()
|
8
|
10
|
|
|
11
|
+include(GNUInstallDirs)
|
|
12
|
+
|
9
|
13
|
# This should really never be disabled. The pure-X mode of slop is very expensive and buggy.
|
10
|
14
|
# It also doesn't work on Wayland. Though if a system is never running a compositor, or
|
11
|
15
|
# doesn't have OpenGL, this could remove some linking dependencies I suppose.
|
|
@@ -14,23 +18,11 @@ if ( SLOP_OPENGL )
|
14
|
18
|
add_definitions(-DSLOP_OPENGL="True")
|
15
|
19
|
endif()
|
16
|
20
|
|
17
|
|
-project(slop)
|
18
|
|
-
|
19
|
21
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/")
|
20
|
22
|
|
21
|
|
-set( CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Directory where man pages reside. (/usr/share/man, /usr/local/share/man, etc.)" )
|
22
|
|
-
|
23
|
|
-set( CMAKE_COMPRESS_MAN TRUE CACHE BOOL "Whether or not to compress the man pages for install." )
|
24
|
|
-
|
25
|
|
-if ( CMAKE_COMPRESS_MAN )
|
26
|
|
- set( MANTARGET "slop.1.gz" )
|
27
|
|
-else()
|
28
|
|
- set( MANTARGET "slop.1" )
|
29
|
|
-endif()
|
30
|
|
-
|
31
|
23
|
include_directories("${PROJECT_BINARY_DIR}")
|
32
|
24
|
|
33
|
|
-add_definitions(-DSLOP_VERSION="v7.3.49")
|
|
25
|
+add_definitions(-DSLOP_VERSION="v${PROJECT_VERSION}")
|
34
|
26
|
|
35
|
27
|
# The names have to be unique unfortunately.
|
36
|
28
|
set(EXECUTABLE_NAME "slop")
|
|
@@ -63,11 +55,13 @@ endif()
|
63
|
55
|
|
64
|
56
|
set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
|
65
|
57
|
set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD 11)
|
|
58
|
+set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_EXTENSIONS OFF)
|
66
|
59
|
|
67
|
60
|
add_executable(${EXECUTABLE_NAME} src/main.cpp)
|
68
|
61
|
|
69
|
62
|
set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
|
70
|
63
|
set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CXX_STANDARD 11)
|
|
64
|
+set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CXX_EXTENSIONS OFF)
|
71
|
65
|
|
72
|
66
|
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/modules" )
|
73
|
67
|
|
|
@@ -118,15 +112,7 @@ else()
|
118
|
112
|
endif()
|
119
|
113
|
endif()
|
120
|
114
|
|
121
|
|
-get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
|
122
|
|
-
|
123
|
|
-if ("${LIB64}" STREQUAL "TRUE")
|
124
|
|
- set(LIBSUFFIX 64)
|
125
|
|
-else()
|
126
|
|
- set(LIBSUFFIX "")
|
127
|
|
-endif()
|
128
|
|
-
|
129
|
|
-install( TARGETS ${EXECUTABLE_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" )
|
130
|
|
-install( TARGETS ${LIBRARY_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIBSUFFIX}" )
|
131
|
|
-install( FILES ${CMAKE_SOURCE_DIR}/src/slop.hpp DESTINATION "${CMAKE_INSTALL_PREFIX}/include" COMPONENT development )
|
132
|
|
-install( FILES "${CMAKE_SOURCE_DIR}/${MANTARGET}" DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" COMPONENT doc )
|
|
115
|
+install( TARGETS ${EXECUTABLE_NAME} DESTINATION "${CMAKE_INSTALL_BINDIR}" )
|
|
116
|
+install( TARGETS ${LIBRARY_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}" )
|
|
117
|
+install( FILES ${CMAKE_SOURCE_DIR}/src/slop.hpp DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" COMPONENT development )
|
|
118
|
+install( FILES ${CMAKE_SOURCE_DIR}/slop.1 DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" COMPONENT doc )
|