177 Commits

Author SHA1 Message Date
Dimitris Panokostas
9a7678128c
Updated version to 7.0.1 for next release 2025-01-16 09:00:07 +01:00
Dimitris Panokostas
2f38eb7a1d
Update version date, remove RC status 2025-01-14 22:28:55 +01:00
Dimitris Panokostas
203c6cdf33
update to RC3 2025-01-08 20:52:49 +01:00
Dimitris Panokostas
a2fa9f3b92
Prepare version for RC2 2024-12-19 17:00:47 +01:00
Dimitris Panokostas
f967df0ace
Revert "refactor: bump CMake requirement to 3.27 so we can debug it"
This reverts commit 0e28e2bb1aa51c33fc4b172994e2ca4d06709276.
2024-12-19 15:52:53 +01:00
Dimitris Panokostas
0e28e2bb1a
refactor: bump CMake requirement to 3.27 so we can debug it 2024-12-19 15:28:34 +01:00
Dimitris Panokostas
701d538826
refactor: add pre-release version string
Pre-releases or RC packages, should indicate that in the version string
2024-11-27 10:47:14 +01:00
Dimitris Panokostas
75572f4224
bugfix: ensure CPack also has correct capitalization (fixes #1514) 2024-11-23 10:59:04 +01:00
Dimitris Panokostas
2e70acc70e
bugfix: Linux builds should have PROJECT_NAME in lower case
Looks like the CMAKE_SYSTEM_NAME variable is only valid AFTER the project is set.
We need a capitalized name for macOS builds, but lowercase for linux ones.
2024-11-23 10:45:29 +01:00
Dimitris Panokostas
97a7021c7b
ci: fix capitalization for MacOS App bundle 2024-11-21 23:53:19 +01:00
Dimitris Panokostas
0c5d05255e
Refactor cmakelists (#1467)
* refactor: break out CMakeLists.txt

Make things more manageable by breaking out sections of the monolithic CMakeLists.txt into separate files
2024-10-10 10:37:14 +02:00
Dimitris Panokostas
940c046ad2
Fix flatpak (#1466)
* refactor: fix flatpak builds
- added FindHelper.cmake
- Bumped Flatpak runtime to 24.08
- Version changes

* fixed find helper for libserialport

* use variables for find_helper libs

* fixed libmpeg2 vs libmpeg2convert

* refactor: desktop and metainfo.xml files
- Merged files between flatpak and normal Linux packages

* Update com.blitterstudio.amiberry.yml

* Update Amiberry.desktop
2024-10-10 08:55:46 +02:00
Dimitris Panokostas
270490da7d
refactor: Moved "abr" folder under data. (#1464)
It doesn't really belong in plugins.
2024-10-09 15:52:58 +02:00
Dimitris Panokostas
2f3a353c3f
enhancement: improved icon, added svg version (#1463)
* enhancement: improved icon, added svg version

* enhancement: Use the MacOS-specific icon

* bugfix: Fixed description file
2024-10-08 22:56:48 +02:00
Dimitris Panokostas
261406f18f
build: added RPM package option
Add support for RPM packages with CPack.
Tested on Fedora 40
2024-10-06 17:39:40 +02:00
Dimitris Panokostas
aada2f3e69
refactor: set linker flags optionally (#1459) 2024-10-04 18:10:56 +02:00
Dimitris Panokostas
8c50377f96
Revert "build: strip shared libraries in release builds"
This reverts commit 3069d011aad080ef8c7546c5d3bc340ee71e06bc.
2024-10-04 16:18:23 +02:00
Dimitris Panokostas
2c8ce96d27
Revert "build: only apply linker flags on GCC (clang fails)"
This reverts commit e9f5723cd0e091d50299f0d3459b01cdcd9718ba.
2024-10-04 16:18:13 +02:00
Dimitris Panokostas
e9f5723cd0
build: only apply linker flags on GCC (clang fails) 2024-10-04 16:06:45 +02:00
Dimitris Panokostas
3069d011aa
build: strip shared libraries in release builds 2024-10-04 15:56:58 +02:00
Dimitris Panokostas
8e13e82427
build: fix linker errors in some environments 2024-10-04 15:43:12 +02:00
Dimitris Panokostas
e72e52a3f3
build: refactor compiler/linker options 2024-10-04 09:17:28 +02:00
Dimitris Panokostas
63d082fc5a
build: move -no-pie to linker flags 2024-10-04 08:36:45 +02:00
Dimitris Panokostas
f0c5ef0114
build: don't set the prefix for mac builds 2024-10-03 13:15:05 +02:00
Dimitris Panokostas
95b08a1cad
build: add cpack prefix to match install one
This ensures that if we use CPack, it will use the same prefix specified in the configure/build steps as well
2024-10-03 12:42:13 +02:00
Dimitris Panokostas
ae67dbfc0f
Revert "build: temp fix for setting data/lib dirs without hardcoding them in code"
This reverts commit 02bbe90b96012c91f9032824c71df66e13fa0b5a.
2024-10-02 22:40:49 +02:00
Dimitris Panokostas
02bbe90b96
build: temp fix for setting data/lib dirs without hardcoding them in code 2024-10-02 22:30:49 +02:00
Dimitris Panokostas
fdbfce5c9a
build: copy required dirs to build directory, so we can run it from there 2024-10-02 21:48:52 +02:00
Adam Sampson
e0766f8b1e
build: don't hardcode /usr prefix in the source (#1456)
The new installation rules respect CMAKE_INSTALL_PREFIX and the other
GNUInstallDirs variables, but the prefix was hardcoded as /usr in
several places in osdep/amiberry.cpp, so it wouldn't actually work if
installed to a different prefix.

Define AMIBERRY_DATADIR and AMIBERRY_LIBDIR in CMakeLists.txt, and use
these instead of the hardcoded paths.
2024-10-02 16:22:15 +02:00
Dimitris Panokostas
14f1f38048
bugfix: DEB package was missing our libs 2024-10-02 11:07:38 +02:00
Dimitris Panokostas
3e5aaff011
refactor: use version string from CMake file 2024-10-01 14:31:32 +02:00
Dimitris Panokostas
7ed80a5c0c
build: silence warnings for unused arguments on macOS builds 2024-10-01 14:14:36 +02:00
Dimitris Panokostas
6e84d721c9
Macos bundle (#1446)
* refactor: macOS bundle changes

- Move macos build files in separate directory
- Harmonize logic of creating folders on startup between MacOS and Linux versions
- Removed macos_init_amiberry.zsh script, no longer needed

* ci: enable builds on all pushes and pull requests

* ci: build on every push, not just tags

* build: fix some paths

* Added cmake macosx bundle options

* Fixes for macOS directory detections

* build: fix path to template file

* Escape paths in macOS Library directory

* build: when compiling on macOS, capitalize project name

* ci: use CMake to prepare macOS bundles

* ci: fix path for macOS bundle

* ci: remove CPack options for macOS (not needed)

The build already produces an app bundle now, so there's no need for Cpack as well for this platform

* ci: don't include the build dir in the macOS zip

* ci: fix path to macOS artifact

* ci: fix macOS x86 zip path

* build: add a few more properties in the plist file

* build: combine macOS and Linux options where possible

* build: added man file (fixes #1445)

* ci: build macOS packages the same way as Linux Deb ones

* ci: also change apple silicon build

* build: fix macos bundle packaging from cmake

* refactor: reorganize CPack entries

- reorganized cpack entries in more logical order
- added DMG background image

* refactor: improved icon

* bugfix: fixed applescript .app reference

* build: maybe we don't need the RPATH change anymore

* build: skip install step in bundled libs, do it from the root one only

* refactor: use .dylib for macOS libs, look for them in Frameworks directory

* build: fix destination folder of DEB assets

* build: remove Makefiles and obsolete files

* refactor: data_dir in macOS should be in Resources

* refactor: some dirs should not be in the config file

- data dir is determined on startup, having it in the config file will only make things worse
- path dir doesn't seem to be necessary to save/load
- config path as well
2024-09-30 18:38:55 +02:00
Dimitris Panokostas
40e73ea8ae
1440 create home directories on startup (#1443)
* build: move gamecontrollerdb.txt to controllers directory

* enhancement: create home directories if they don't exist

- After the directories have been decided (data, home, config), create those in the specified HOME directory, if they don't exist
- If they didn't exist, and we had the original contents installed in /usr/share/amiberry/<dir>, copy those over and change permissions. This ensures that the distributed files like the AROS ROMs, the WHDLoad booter and the controllerdb files, are always there in the home dir.

* chore: we no longer need to copy all the directories in the package

Now that we create the home directories on startup, we don't need the empty ones in the package anymore.
Only those that contain something can stay

* build: add stripping of binaries

* chore: ignore .idea folder

* bugfix: WHDLoad booter A1200 config was incorrect

After the additional entries in A1200 configs and models, the booter was set to incorrectly use a config with a Blizzard accelerator. Since that requires a board ROM, which might not be available, it has to change.

Using the default A1200 config instead, and setting Fast RAM to 8MB after that.

* build: install icon in shared location

When preparing the .deb package, the application icon should go in the /usr/share/icons/hicolor/... location, to adhere with established standards

* build: use ~/Amiberry instead of ~/.amiberry

Perhaps it's best to use a non-hidden folder for amiberry directories, make it easier on the users to find it

* refactor: use ~/Amiberry/conf instead of ~/.config/amiberry for config files

* refactor: change desktop file icon reference

Should be possible to use just "amiberry" now, that the icon file is copied in the right location

* chore: fix references to github.com/midwan -> github.com/BlitterStudio

* refactor: move plugins dir to /usr/lib/amiberry in the .deb package

If we are using a system-wide installation, with the .deb package, use /usr/lib/amiberry for plugins.
Check the HOME/Amiberry/plugins next, create it if necessary.
Fallback to the startup directory if that's not available (probably never).

* refactor: only move the abr folder in the destination plugins

When using the .deb package, only the abr folder should be copied in the destination.
Otherwise, we get a plugins directory created there as well

* refactor: Change Kickstarts to Roms

The Kickstarts directory can contain different kind of ROMs, not only kickstarts.
It's best if we rename it accordingly

* build: CPack updates

- Removed unneeded line
- added CPACK_DEBIAN_PACKAGE_ARCHITECTURE
- Added Extended Description
- Fixed description starts with package name

* ci: rename architectures properly

Let's keep the names identical to what dpkg reports

* build: fix some lintian errors

- location of plugins
- section

* build: added copyright and changelog in DEB

* build: fix location of debian files

* build: add copyright notice, fix changelog

* build: changelog should be compressed

* build: extend the description

* build: make the description lines shorter...

* build: description should not be longer than 80 chars

* build: remove timestamp from changelog

Fix another lintian complaint

* build: description again

* bugfix: the plugins dir was not correctly set

* refactor: Updated desktop entry to handle MimeTypes

* build: remove duplicate key in desktop file

* build: add more mimetypes to desktop file
2024-09-28 09:54:50 +02:00
Dimitris Panokostas
54ecea7701
build: don't copy the directories in the build dir always
We don't need this anymore.
If install was chosen, those will get copied in the destination install directory.
CPack uses the install items to prepare the package also.
2024-09-25 15:21:47 +02:00
Dimitris Panokostas
229f2e588b
ci: fixed one more reference of APPLE 2024-09-25 15:06:47 +02:00
Dimitris Panokostas
94226f5ccd
ci: Prevent in-tree builds
You will have to provide a build directory outside the amiberry sources, to keep things clean
2024-09-25 08:45:33 +02:00
Dimitris Panokostas
045acf2f9b
ci: change APPLE to Darwin checks in CMake
Apple will match all Apple operating systems, but we're really only interested in macOS
2024-09-25 07:57:01 +02:00
Dimitris Panokostas
22bf8e8804
Cmake packaging (#1431)
* modify CMakeLists.txt to be able to build packages for MacOS and Linux

* Moved pull request template to .github dir

* Moved code of conduct file under .github directory

* Removed gitmodules file

* Moved install extra dirs to only if we're not building an Apple bundle

* Added first version of a Deb package option to CPack

* Fixed double directory creation during installation/packaging

* Remove debian directory

We won't be using this, going for CPack instead

* Fixed package version

* Clean up contents of packages

* Fix dependencies and filename of .deb package

* Bump version to 6.3.5

* Add desktop file for Deb package

* Remove archive generator, the DEB one is good enough

* Change pipeline to use CMake for Linux targets

Let's generate some .deb files!
This is most likely missing stuff, like the distro name...

* Fix incorrect architecture names in cross-compiler

* Fix 32-bit arm package architecture

* ci: Allow 32-bit arm builds

* ci: disable the bullseye builds for now

Until we figure out a solution with Bullseye + CMake + SDL2_image/SDL2_ttf

* ci: fix expected targets

* ci: bring back bullseye builds

* Remove path from desktop shortcut

* Fixed typo in comment

* Set the version in the Project, use that for CPack

* Updated compiled and linker flags with no-pie properly

- There were some differences between the Makefile flags and CMake. Now they are identical
- Updated the Findmpg123.cmake file with the latest one from upstream

* Include bullseye build targets again
2024-09-23 18:20:16 +02:00
Solskogen
f2b173ac75 Yet another fix for CMake that will help both OSX and Debian Bullseye 2024-09-21 21:33:04 +02:00
Solskogen
26c172c475 Remove unnecessary architecture detection 2024-09-20 12:00:55 +02:00
Dimitris Panokostas
5fb7738bc8
ci: fix cmake linker flags for macos 2024-09-19 17:32:37 +02:00
Dimitris Panokostas
75744d3b8a
ci: macos fixes, guisan should be static 2024-09-19 17:07:23 +02:00
Dimitris Panokostas
4060ecce12
ci: more Cmake files for MacOS 2024-09-19 16:33:39 +02:00
Dimitris Panokostas
ab03f586da
ci: ensure Apple ARM builds don't detect both arm32 and arm64 defines 2024-09-19 16:00:15 +02:00
Dimitris Panokostas
32dafceed5
ci: Cmake builds would fail if started under a subdir (#1430)
* ci: Cmake builds would fail if started under a subdir

* ci: add cmake files needed for bullseye

* ci: updated macOS include directories

* ci: fix compiler error under clang/macOS

* ci: remove unused linker flag

* ci: add cmake in macOS homebrew
2024-09-18 22:50:42 +02:00
Dimitris Panokostas
2bd584115c
Big bang winuae merge (#1428)
* enhancement: Merge more WinUAE code

- Added PPC
- Added PCEM
- Added PCI
- Added MAME (A2410 and TM34010)
- Added QEMU (various gfx cards, network cards, SCSI, etc)
- Enabled relevant ifdefs

* enhancement: Added luascript, slirp_uae

- Removed unused ersatz
- Added luascript (disabled for now, needs an extra library)
- Added slirp_uae (disabled for now)
- Added sources for separate tool "uaeunp"

* enhancement: Added DSP emulation

- Added DSP emulation files from WinUAE, with slight modifications (disabled for now)

* enhancement: Enabled TabletLibrary, DSP, Draco

Not implemented on the GUI yet, but enabled related ifdefs in the code

* enhancement: Added SANA2 support

Not visible on the GUI yet

* enhancement: sync includes and other details with WinUAE

* enhancement: added support for more RTG boards

* bugfix: added missing arm/arm64 headers for pcem codegen_backend

WinUAE didn't have these, so let's grab them from PCem v16 directly

* enhancement: Fixed defines in picasso96.cpp

* bugfix: Maybe we should actually sleep for a few ms in sleep_millis2

* enhancement: P96 - added ifdefs where Amiberry-specific pieces are added

* chore: sync time/rpt headers with WinUAE

* chore: reduce the lines of ifdefs in ahi_v2

* enhancement: use SDL_Delay instead of waiting for the cpu_wakeup_event

* perf: only call init_row_map if the pixels have changed

* enhancement: Added GVP T-Rex II

Merged from WinUAE

* enhancement: Added DKB WildFire v1.0 and Masoboshi v2.197

Merged from WinUAE

* enhancement: Flush trap queues during reset.

* bugfix: Added missing S3 Virge PCI byteswap mode

Merged from WinUAE

* perf: Do not unnecessarily call SetCursor() continuously.

* bugfix: Fixed uae_sem_unpost

This should be SemPost, not SemWait

* enhancement: Allow 16-bit only if D3D9 is selected.

Merged from WinUAE - Amiberry uses gfx_api value 2 anyway.

* bugfix: Fix SPRxPOS modification just before horizontal match if sprite had lowest horizontal bit set.

Merged from WinUAE

* enhancement: Both COPxJMP strobe emulation update

Merged from WinUAE

* enhancement: Serial emulation updates, more accurate transmit timing, receive timing is not anymore instant except in direct mode.

Merged from WinUAE

* enhancement: OpalVision undocumented horizontal panning emulation

address load was ignored if it was included in second control line.

* perf: Reduce amount of read_processor_time() calls.

Merged from WinUAE

* build: updated makefile with new files

* enhancement: added PPC options to GUI

* enhancement: added MapROM option in GUI

* bugfix: GUI RAM Panel did not highlight selected items properly

* enhancement: added label in Input panel for Parallel Port joystick adapter

The label should make it more clear that the last two ports are for the emulated parallel port joystick adapter

* enhancement: GUI listbox inactive color improvement

The guisan listbox would use an inactive color of a fixed value.
It should use something from the color scheme, instead.

* enhancement: added more models and configs in Quickstart
2024-09-17 20:56:46 +02:00
Dimitris Panokostas
ef243ceeb3
build: added CPack support 2024-09-12 03:20:34 +02:00
Dimitris Panokostas
fe4a32cd31
build: ensure external libs are built before binary under CMake 2024-09-12 03:11:13 +02:00
Dimitris Panokostas
f7d83840d8
build: change paths for cmake install 2024-09-11 19:39:12 +02:00