-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxmake.lua
More file actions
102 lines (76 loc) · 3.01 KB
/
xmake.lua
File metadata and controls
102 lines (76 loc) · 3.01 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
set_project('clocks')
clocks_version_major = 1
clocks_version_minor = 0
clocks_version_patch = 1
set_version(clocks_version_major .. '.' .. clocks_version_minor .. '.' .. clocks_version_patch)
add_configfiles('src/config.hpp.in')
set_configdir('src')
set_configvar('VERSION_MAJOR', clocks_version_major)
set_configvar('VERSION_MINOR', clocks_version_minor)
set_configvar('VERSION_PATCH', clocks_version_patch)
set_configvar('NAME', 'Clocks')
set_configvar('DESCRIPTION', 'World clocks plugin for TrafficMonitor.')
set_configvar('AUTHOR', 'Yzen')
set_configvar('C_SYMBOL', '\\xa9')
set_configvar('COPYRIGHT', '2025 Edgar Montiel Cruz')
set_configvar('URL', 'https://github.com/Yzen90/clocks')
set_languages('cxx23')
set_config('toolchain', 'clang')
add_rules('mode.debug', 'mode.release')
add_rules('plugin.compile_commands.autoupdate', {outputdir = 'build'})
add_includedirs('extern/TrafficMonitor/include')
add_includedirs('vcpkg_installed/$(arch)-$(plat)-static/include')
add_linkdirs('vcpkg_installed/$(arch)-$(plat)-static/lib')
add_syslinks('WindowsApp', 'User32')
add_defines('NOMINMAX', 'WIN32_LEAN_AND_MEAN', 'UNICODE', '_UNICODE', 'IMGUI_USE_WCHAR32')
includes('src/i18n')
target('clocks')
set_kind('shared')
add_files('src/*.cpp', 'src/**/*.cpp', 'src/clocks.rc')
remove_files('src/i18n/schemagen.cpp')
add_files('vcpkg_installed/$(arch)-$(plat)-static/include/easylogging++.cc')
add_packages('sdl')
add_deps('imgui')
add_syslinks('kernel32', 'gdi32', 'winmm', 'imm32', 'ole32', 'oleaut32', 'version', 'uuid', 'advapi32', 'setupapi', 'shell32')
add_cxxflags('-Wno-c23-extensions', '--embed-dir=assets', '--embed-dir=locale')
add_defines('AUTO_INITIALIZE_EASYLOGGINGPP', 'ELPP_NO_DEFAULT_LOG_FILE', 'XXH_INLINE_ALL')
if is_mode('release') then
add_defines('GLZ_ALWAYS_INLINE=[[clang::always_inline]] inline')
else
add_defines('NOT_RELEASE_MODE')
end
add_rules('i18n-codegen', 'i18n-validation')
target('imgui')
set_kind('static')
add_files('extern/imgui/*.cpp')
add_files('extern/imgui/backends/imgui_impl_sdl3.cpp')
add_files('extern/imgui/backends/imgui_impl_sdlgpu3.cpp')
add_files('extern/imgui/misc/freetype/imgui_freetype.cpp')
add_files('extern/imgui/misc/cpp/imgui_stdlib.cpp')
add_files('extern/imgui_toggle/*.cpp')
add_includedirs('extern/imgui', {public = true})
add_includedirs('extern/imgui/misc/cpp', {public = true})
add_includedirs('extern/imgui_toggle', {public = true})
add_packages('sdl')
add_links('freetype')
add_defines('IMGUI_DISABLE_DEFAULT_FONT', 'IMGUI_ENABLE_FREETYPE')
package('sdl')
add_deps('cmake')
set_sourcedir('extern/SDL')
add_versions("3.2.5-f0cb78e0", "f0cb78e082ac094bb8b209cdcc9dd9f414726d88")
on_install(function (package)
import('package.tools.cmake').install(package, {
shared = false,
SDL_SHARED = 'OFF',
SDL_STATIC = 'ON'
})
end)
package_end()
add_requires('sdl')
target('tester')
set_kind('binary')
add_files('tester.cpp')
add_deps('clocks')
if is_mode('release') then
set_enabled(false)
end