68 Commits

Author SHA1 Message Date
Rafał Florczak e0aad77672 Check for glu and udev in cmake 2025-03-03 23:26:54 -08:00
Yauhen Artsiukhou 59e6e94cf3 Embed libusb 1.0 into project 2024-10-06 17:43:13 -07:00
sukibaby 5bb4e04957 Allow building on BSD 2024-07-15 07:00:07 -07:00
Rafał Florczak 90aabddc7f Drop libbz2 dependency
Dynamic linking against libbz2 was problematic on some distributions.
We only needed it for pcre's CLI (which we don't use) and ffmpeg's mkv
decompression in case a user forced encoder to use it, because its usage
is discouraged by the standard.

See https://github.com/itgmania/itgmania/issues/217 for the related
discussion.
2024-06-18 05:39:51 -07:00
phantom10111 48e797bf35 Move generated directory to build directory
StepMania generates some files during build but it's a bit unusual to generate
them in source directory instead of build directory. Move them to build
directory and remove src/generated from .gitignore.
2024-04-12 22:40:09 -07:00
Martin Natano bcea05dd67 Reinstate defines required for the mad build 2023-04-20 21:43:47 +02:00
Martin Natano 00ec2dce06 Recover accidentally deleted code 2023-04-20 21:43:46 +02:00
Martin Natano 78fb2e9fc3 Decouple <cstddef> 2023-04-20 11:21:29 +02:00
Martin Natano a93fc07896 Remove unused defines 2023-04-20 11:21:29 +02:00
Martin Natano b68ca517e6 Clean up math functions
- Remove checking for standard functions from the build system
- Prefix all invocations with std::
- Replace suffixed functions with unprefixed versions
- Include <cmath> in all files that use it and remove the global include

e.g. floorf(x) -> std::floor(x)
2023-04-19 19:31:40 +02:00
teejusb 4e19ce0d5d Add Linux Pacdrive 2023-03-10 10:19:08 -08:00
Brian Phlipot 4a6b1a743c Enable more compiler warnings and treat them as errors. 2023-02-02 11:54:17 -08:00
Martin Natano 838de6fb81 Remove support for mingw
MSVC works fine and the bundled mingw libraries are outdated.
2022-06-07 22:49:05 +02:00
Martin Natano 087d4576cc Use cmake standard mechanism for finding dlopen 2022-06-07 22:49:05 +02:00
Martin Natano 58dd83db8a Disable vaapi
One less dependency to worry about and ffmpeg works fine without it.
2022-06-07 10:54:10 +02:00
Martin Natano f47ea91e0a Stop looking for bundled libraries 2022-06-07 10:54:10 +02:00
Martin Natano 740ead25bf Universal binaries break input monitoriing on M1
Let's build two separate apps for arm64 and x86_64. Sigh
2022-06-06 11:19:59 +02:00
Martin Natano ed4090e2ba Enable asm optimizations for ffmpeg on macOS 2022-06-05 12:04:37 +02:00
Martin Natano 7b9a799cdb Statically link MSVC runtime 2022-06-03 19:47:45 +02:00
Martin Natano 327278436d Remove support for building with system libraries 2022-05-31 18:21:35 +02:00
Martin Natano 06154a0094 Upgrade libjpeg 8c -> 9e 2022-05-30 23:57:33 +02:00
Martin Natano 07e422111c Tweak app bundle 2022-05-24 12:39:55 -07:00
Martin Natano b9ebbd32a9 Build universal binary on macOS 2022-05-02 21:23:48 +02:00
Martin Natano 9cf66ae643 Update ffmpeg 2.1.3 -> 5.0.1
Old ffmpeg has a lot of vulnerabilities that have been fixed in newer
versions, see https://www.cvedetails.com/vulnerability-list/vendor_id-3611/Ffmpeg.html.
2022-04-30 23:22:52 +02:00
Martin Natano 3ca3bb0773 Fix macOS build 2022-04-11 14:50:00 -07:00
Martin Natano dbef16945f Remove unused SDL dependency 2022-04-11 14:50:00 -07:00
Martin Natano 02008eb469 Rename to ITGmania
- executable name:
  - linux: itgmania
  - windows: ITGmania.exe
  - macOS: ITGmania.app
- config path:
  - linux: ~/.itgmania
  - windows; %AppData%\ITGmania
  - macOS: ~/Library/Application Support/ITGmania
2022-04-02 20:14:57 -07:00
Seán de Búrca 6649a116ed Update gtk+ LoadingWindow to use gtk3 2020-06-21 23:31:02 +02:00
Elias Kunnas 0bd2365ebc Use libXtst again with CMake (#1908)
* Use libXtst again with CMake

It seems that Xtst was never used after the transition to CMake.

This is related to https://github.com/stepmania/stepmania/issues/1902.

* Travis: install libxtst-dev
2019-10-24 08:22:42 -07:00
Martin Kröning 65a69ea874 Linux: Use GLVND if available. (#1860)
Fixes #1859.
Uses CMake's FindModule for OpenGL.
2019-10-13 13:30:41 -07:00
Prcuvu a51971f58d Remove existing DLLs in Program folder before copying 2019-10-14 01:03:08 +08:00
Prcuvu 44b76446bb Merge branch '5_1-new' into win64 2019-10-06 00:55:50 +08:00
Tracy Ward 46e1410932 Remove DirectX SDK search from CMake
The DirectX APIs are now part of the Windows SDK. We should stop relying on
the ancient SDK. This is step one.

(backport from master)
2019-10-04 08:45:34 -04:00
Prcuvu b26b711e47 Reenable USE_FOLDERS 2019-10-04 14:09:11 +08:00
Prcuvu d63957ed0b Fix CMake syntax 2019-10-01 16:48:00 +08:00
Prcuvu 3cd1bdcc8f Add WinDDK x64 libraries 2019-10-01 14:45:55 +08:00
Prcuvu b9a4d71c23 Add FFmpeg 2.1.3 Windows x64 libraries and auto copy binaries on configuration 2019-10-01 14:37:46 +08:00
Gareth Francis d4ca6f8a43 Fix selection logic for sound libraries
HAS_XX is used elsewhere in the project to select optional sources,
will only be true if the lib is available on the system, and the
user asked to use it.
2019-06-30 12:07:56 +01:00
Tatsh b8a79cd0f6 Allow linking against system libraries for almost everything (#1790) 2019-02-16 08:32:52 -08:00
Tatsh d395028bd4 Mac fixes (#1776)
* macOS build fixes (#1773)

* macOS build fixes

Add missing headers
Threads_Pthreads: do not call pthread_setname_np() on macOS as it does not do
the same as on Linux
DebugStr() -> os_log()

* Make the project build with Makefiles on macOS

* Fix getting modifier key state on Mac (#1774)

We really need to clean up all Carbon calls here (many will go away when the
project switches to SDL2 for all platforms)

* Fix Xcode build; bump minimum version of macOS (#1775)

* Build fixes for the "Unix Makefiles" generator
Pass CMAKE_BUILD_TYPE to the external projects
* Fix indent
2018-12-31 19:28:59 -08:00
Drew Barbarello 557be7cf1b 5 1 new backport x11 fs rework (#1485)
* Use XRandR 1.2 to set fullscreen resolution for single output

Squash of roothorick's PR #497
(also includes Kyzentun's CMake changes from PR #716)

* Cherry-pick json c++1x stuff (b9e3d7174e)

* Cherry-pick c++11 support from 5bba5c0038 and 9f8b045309

* rework Linux (X11) fullscreen, improve display-related Graphics Options

Implement option to select between monitors for exclusive fullscreen mode
on X11 (using XRandR 1.2), or use a fullscreen borderless window.

Reimplement resolution/refresh rate/display mode-related option rows
using Lua, update choices dynamically so only known-good groupings of
resolution/refresh rate/aspect ratio can be selected.

Minimally update Windows/MacOS LowLevelWindow implementations to support
changes made for Linux side. Fullscreen Borderless Window/multi monitor
support from X11 not implemented for those in this commit.

* allow forcibly disabling xinerama use on Linux

When libXinerama is available, SM tries to use it to find the proper
monitor indexes to use to set _NET_WM_FULLSCREEN_MONITORS (on borderless
fullscreen). xfwm4 seems to assume that monitors are numbered in increasing
order from left to right (rather than using the Xinerama-assigned numbers),
so _NET_WM_FULLSCREEN_MONITORS misbehaves on Xfce.

This commit bypasses use of libXinerama, and instead forces SM to induce fullscreen
on the desired monitor in the backup, hacky way: remove all window hints, move window
to desired monitor, then add _NET_WM_STATE_FULLSCREEN hint. This works on
mutter and Xfce.

* Remove multiple warnings on redundant define.

This used to be hard-coded due to pthread related items, but now it's dynamically determined.

* fix _fallback menu behavior for unrecognized aspect ratios

* Fix error recreating existing FS texture

* Bump deployment target to 10.7 to use libc++ on XCode 8

* Add explicit casts to please clang

* Update changelog
2017-06-18 08:55:16 -07:00
Devin J. Pohly 40dc05e4ed CMake: check for timed pthreads functions
The macros
  HAVE_PTHREAD_MUTEX_TIMEDLOCK
  HAVE_PTHREAD_COND_TIMEDWAIT
are still being used in the Pthreads threading implementation, but the
CMake build system never sets them, so the timed versions aren't used.
This ended up making WorkerThread heartbeats not beat. </3
2016-05-24 11:52:45 -04:00
Jason Felds 47d59c9dd7 Default to linking with /MT instead of /MD for VS. 2015-10-27 19:33:05 -04:00
Jason Felds 0a886f3f2e Made in haste. Revert. 2015-10-26 18:40:37 -04:00
Jason Felds 7d56f79cf3 Force Windows to use the Unicode character set. 2015-10-26 18:22:53 -04:00
latot 47b0f83aed Remove WITH_VERSION_INFO, version info by default 2015-10-22 21:21:47 -03:00
Jason Felds 6f53f1c3e5 Backtrace stuff ahoy!
* Properly detect and utilize libdl.
* Set the backtrace method appropriately.
* Remove an unused backtrace format. No references existed.
2015-10-08 18:42:44 -04:00
Jason Felds d9a3c9cf97 Use cmake to determine which string func we need.
On a side note, better to default to linux names when possible.
2015-10-07 19:00:16 -04:00
Jason Felds b8700f11a7 Finally bring ffmpeg 2.1.3 to Mac OS X.
This replaces #611.
2015-10-03 22:32:14 -04:00
Jason Felds f9a1f728af Reference bzip2 and iconv on Mac OS X properly.
This removes the need for the arbitrary other linker flags.

This is required to allow for proper building of ffmpeg (the next goal).
2015-10-03 20:38:38 -04:00