-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
102 lines (90 loc) · 4.11 KB
/
Copy pathCMakeLists.txt
File metadata and controls
102 lines (90 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
cmake_minimum_required(VERSION 3.16)
project(GamepadCommander LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(SDL2 REQUIRED)
find_package(CURL)
add_executable(GamepadCommander
src/main.cpp
src/SteamHelper.cpp
)
if (WIN32)
set_property(TARGET GamepadCommander PROPERTY WIN32_EXECUTABLE TRUE)
set(WINDOWS_ICON_RC "${CMAKE_BINARY_DIR}/GamepadCommander.rc")
configure_file(
"${CMAKE_SOURCE_DIR}/packaging/GamepadCommander.rc.in"
"${WINDOWS_ICON_RC}"
@ONLY
)
target_sources(GamepadCommander PRIVATE "${WINDOWS_ICON_RC}")
target_link_libraries(GamepadCommander PRIVATE ole32 uuid)
endif()
if (TARGET SDL2::SDL2)
if (TARGET SDL2::SDL2main)
target_link_libraries(GamepadCommander PRIVATE SDL2::SDL2main)
endif()
target_link_libraries(GamepadCommander PRIVATE SDL2::SDL2)
else()
target_include_directories(GamepadCommander PRIVATE ${SDL2_INCLUDE_DIRS})
target_link_libraries(GamepadCommander PRIVATE ${SDL2_LIBRARIES})
endif()
if (CURL_FOUND)
target_compile_definitions(GamepadCommander PRIVATE USE_CURL=1)
if (TARGET CURL::libcurl)
target_link_libraries(GamepadCommander PRIVATE CURL::libcurl)
else()
target_include_directories(GamepadCommander PRIVATE ${CURL_INCLUDE_DIRS})
target_link_libraries(GamepadCommander PRIVATE ${CURL_LIBRARIES})
endif()
endif()
if (UNIX AND NOT APPLE)
option(BUILD_APPIMAGE "Build AppImage during the default build" OFF)
set(APPIMAGETOOL "" CACHE FILEPATH "Path to appimagetool")
if (NOT APPIMAGETOOL)
find_program(APPIMAGETOOL appimagetool)
endif()
if (APPIMAGETOOL)
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" APPIMAGE_ARCH)
if (APPIMAGE_ARCH STREQUAL "amd64")
set(APPIMAGE_ARCH "x86_64")
elseif (APPIMAGE_ARCH STREQUAL "arm64")
set(APPIMAGE_ARCH "aarch64")
endif()
set(APPIMAGE_APPDIR "${CMAKE_BINARY_DIR}/AppDir")
set(APPIMAGE_OUTPUT "${CMAKE_BINARY_DIR}/GamepadCommander.AppImage")
set(APPIMAGE_COMMANDS
COMMAND ${CMAKE_COMMAND} -E make_directory "${APPIMAGE_APPDIR}/usr/bin"
COMMAND ${CMAKE_COMMAND} -E make_directory "${APPIMAGE_APPDIR}/usr/share/applications"
COMMAND ${CMAKE_COMMAND} -E make_directory "${APPIMAGE_APPDIR}/usr/share/icons/hicolor/scalable/apps"
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:GamepadCommander>" "${APPIMAGE_APPDIR}/usr/bin/GamepadCommander"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/packaging/AppRun" "${APPIMAGE_APPDIR}/AppRun"
COMMAND chmod +x "${APPIMAGE_APPDIR}/AppRun"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/packaging/GamepadCommander.desktop"
"${APPIMAGE_APPDIR}/usr/share/applications/GamepadCommander.desktop"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/packaging/GamepadCommander.desktop"
"${APPIMAGE_APPDIR}/GamepadCommander.desktop"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/packaging/GamepadCommander.svg"
"${APPIMAGE_APPDIR}/usr/share/icons/hicolor/scalable/apps/GamepadCommander.svg"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/packaging/GamepadCommander.svg"
"${APPIMAGE_APPDIR}/GamepadCommander.svg"
)
list(APPEND APPIMAGE_COMMANDS
COMMAND ${CMAKE_COMMAND} -E env "APPIMAGE_EXTRACT_AND_RUN=1" "ARCH=${APPIMAGE_ARCH}" "${APPIMAGETOOL}"
"${APPIMAGE_APPDIR}" "${APPIMAGE_OUTPUT}"
)
add_custom_command(
OUTPUT "${APPIMAGE_OUTPUT}"
${APPIMAGE_COMMANDS}
DEPENDS GamepadCommander
COMMENT "Creating AppImage"
VERBATIM
)
if (BUILD_APPIMAGE)
add_custom_target(appimage ALL DEPENDS "${APPIMAGE_OUTPUT}")
else()
add_custom_target(appimage DEPENDS "${APPIMAGE_OUTPUT}")
endif()
elseif (BUILD_APPIMAGE)
message(FATAL_ERROR "BUILD_APPIMAGE is ON but appimagetool was not found in PATH.")
endif()
endif()