mirror of
https://github.com/rozniak/xfce-winxp-tc.git
synced 2026-05-01 03:31:33 +00:00
Enhancement: Fixes #140, Shift as much of the packaging script steps into CMake as possible
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -17,6 +17,8 @@ mui-stuff/
|
||||
# Build output
|
||||
#
|
||||
[Bb]uild/
|
||||
config.h
|
||||
meta.h
|
||||
resources.c
|
||||
*.deb
|
||||
*.pot
|
||||
|
||||
21
README.md
21
README.md
@@ -8,17 +8,26 @@ This is my little chipping-away spot for a Windows XP Total Conversion for XFCE.
|
||||
## What?
|
||||
Essentially this repo is a 'project' to replicate the XP experience on XFCE / Linux in general. This includes everything from desktop themes, icons, cursors, all the way to programs and the shell itself.
|
||||
|
||||
## Why?
|
||||
I used to use Luna theme ports back when Windows 7 was still supported - it's no longer supported and customisability is non-existent on Windows 10. Whilst ports for XP themes do exist for Linux, I don't think they're particularly great. I want to replicate the Windows XP experience, as close to pixel perfect as possible.
|
||||
**Please be aware of the following:**
|
||||
- This project is **NOT** for installing on your parents/grandparents/whoever's computer to 'ease them into Linux' or something, I share this project for the interest of Windows/Linux enthusiasts
|
||||
- There is no attempt to pretend the system is not Linux - consider this as 'Windows XP on the Linux kernel' (ie. you cannot expect there to be a `C:` drive under *My Computer*)
|
||||
- Everything is massively under construction, and I am one person, so please don't whinge to me about how x/y/z doesn't look 100% like Windows XP, or that I haven't made program a/b/c
|
||||
|
||||
As part of my aim this includes writing programs and panel plugins to achieve this goal, such as the Start menu shown in the screenshot above.
|
||||
## Why?
|
||||
I used to use Luna theme ports on Windows 7, which has now lost support, and customisability is non-existent/blown away by WU on Windows 10 - switching to Linux seemed like the best choice.
|
||||
|
||||
There are themes that aim to replicate the Windows XP visual styles already, however as anyone who has tried this stuff knows, themes are either lacking or only go so far. This project differs in that I aim for as close to pixel-perfect as possible, and write programs to recreate the complete Windows XP environment (themes alone cannot reproduce the Start menu in the screenshots above).
|
||||
|
||||
## Building / Installation
|
||||
Make sure to clone this repository recursively so that `/submodules` is populated! (use `git clone <url> --recurse-submodules`)
|
||||
|
||||
The build process involves packaging for each component, and then installing those packages. At the moment, I have only implemented `.deb` packaging, though I have [issue #35](https://github.com/rozniak/xfce-winxp-tc/issues/35) open to sort out other package managers eventually.
|
||||
This project is componentised, so you can compile/install each thing individually (each cursor theme, desktop theme, program, library, etc.). The components are built using CMake (so for developing you can `make`, or if you're on an unsupported distro and desperate, `make install`).
|
||||
|
||||
The packaging is, of course, [found under `/packaging`](https://github.com/rozniak/xfce-winxp-tc/tree/master/packaging) (except for `/submodules`), with each directory explaining how to use the relevant script. In general, have a poke around in this repository, there are `README`s in each directory that will explain what things are, and how to install them. 😁
|
||||
The typical install process involves packaging for each component, and then installing those packages. At the moment, I have only implemented `.deb` packaging, though I have [issue #35](https://github.com/rozniak/xfce-winxp-tc/issues/35) open to sort out other package managers eventually.
|
||||
|
||||
The packaging [lives under `/packaging`](https://github.com/rozniak/xfce-winxp-tc/tree/master/packaging) per format (except for `/submodules`). In general, have a poke around in this repository, there are `README`s in each directory that will explain what things are, and how to install them. 😁
|
||||
|
||||
*Please note, if you came from YouTube, the packaging process differs now in that it has been simplified to a single script rather than a script per type of component.*
|
||||
|
||||
## The theme(s) are buggy!
|
||||
This is almost certainly true, especially seeing as [theming GTK isn't really a supported feature](https://stopthemingmy.app/). If you're using themes from this repository and programs look broken, you should file issues here rather than pestering the developers of said program.
|
||||
@@ -30,7 +39,7 @@ The theme is now based directly from Adwaita to hopefully maximise compatibility
|
||||
## Licence
|
||||
The source code in this repository, essentially any *text* files, such as SASS, C, Bash script source code, are licensed under GPL 2.0.
|
||||
|
||||
This licence obviously does not cover the assets from Windows/Office (images, sounds, fonts etc.) - I am assuming you own genuine copies of Windows XP and Office 2007 in your retro software collection.
|
||||
This licence obviously does not cover the assets from Windows/Office (images, sounds, fonts etc.) - those are still Microsoft's copyright (packaging will mark components using these as `non-free`). They're in this repo because I am lazy. 😛
|
||||
|
||||
## Roadmap?
|
||||
I don't have a fancy looking roadmap document for this repo - there's too much to list really. Essentially, if something was in Windows XP, it's on my mind.
|
||||
|
||||
@@ -10,15 +10,10 @@ Within each directory (eg. `with-shadow/standard`), these are the contents:
|
||||
|
||||
`res/` - contains the actual PNG images for each cursor, which are passed to `xcursorgen`
|
||||
|
||||
`debian-control` - the `control` file used in Debian packaging to provide metadata about the package
|
||||
|
||||
`index.theme` - the actual freedesktop theme config file (that gets deployed to `/usr/share/icons`)
|
||||
|
||||
`mappings` - since there are lots of X cursors that are basically the same, the mappings file maps X cursor names to the cursor names found under `cfg/` and `res/` (formatted as `(xcursor name)-->(cusor filename minus extension)`)
|
||||
|
||||
## Installation
|
||||
See the `README.MD` under `/packaging/deb/cursors` for packaging and installation.
|
||||
|
||||
## Developing a cursor theme
|
||||
Armed with the above info it should make sense to you how to create a cursor theme:
|
||||
- Choose a name appropriate for the theme, create directories under `with-shadow` and `without-shadow` (create both `/with-shadow/<theme>` and `/without-shadow/<theme>`)
|
||||
|
||||
31
cursors/no-shadow/standard/CMakeLists.txt
Normal file
31
cursors/no-shadow/standard/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(
|
||||
wintc-cursor-theme-standard-no-shadow
|
||||
VERSION 1.0
|
||||
DESCRIPTION "Windows Total Conversion Windows XP standard cursor theme (without shadows)."
|
||||
)
|
||||
|
||||
set(PROJECT_ANYARCH true)
|
||||
set(PROJECT_FREESTATUS false)
|
||||
set(PROJECT_MAINTAINER "Rory Fewell <roryf@oddmatics.uk>")
|
||||
|
||||
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
set(CURSOR_THEME_SHORTNAME standard-no-shadow)
|
||||
|
||||
include(../../../packaging/cmake-inc/common/CMakeLists.txt)
|
||||
include(../../../packaging/cmake-inc/cursors/CMakeLists.txt)
|
||||
include(../../../packaging/cmake-inc/mappings/CMakeLists.txt)
|
||||
include(../../../packaging/cmake-inc/packaging/CMakeLists.txt)
|
||||
|
||||
wintc_add_gen_xcursors_target()
|
||||
wintc_add_mappings_target(cursors)
|
||||
|
||||
# Installation
|
||||
#
|
||||
wintc_configure_and_install_packaging()
|
||||
|
||||
install(DIRECTORY ${CURSOR_COMPCURS_OUTPUT_DIR}/ DESTINATION ${CURSOR_PROJECT_INSTALL_PATH}/cursors/res)
|
||||
install(DIRECTORY ${XDG_BLDMAPS_OUTPUT_DIR}/ DESTINATION ${CURSOR_PROJECT_INSTALL_PATH}/cursors)
|
||||
install(FILES ${PROJECT_ROOT}/index.theme DESTINATION ${CURSOR_PROJECT_INSTALL_PATH})
|
||||
@@ -1 +1 @@
|
||||
24 4 1 res/alt-select.png
|
||||
24 4 1 alt-select.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow-copy.png
|
||||
24 0 0 arrow-copy.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow-help.png
|
||||
24 0 0 arrow-help.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow-link.png
|
||||
24 0 0 arrow-link.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow-move.png
|
||||
24 0 0 arrow-move.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 12 0 res/arrow-r.png
|
||||
24 12 0 arrow-r.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow-wait.png
|
||||
24 0 0 arrow-wait.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow.png
|
||||
24 0 0 arrow.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 14 res/bottom-side.png
|
||||
24 5 14 bottom-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 14 res/bottom-tee.png
|
||||
24 5 14 bottom-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 6 11 res/busy.png
|
||||
24 6 11 busy.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/cell.png
|
||||
24 7 7 cell.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 14 res/down.png
|
||||
24 5 14 down.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 6 0 res/hand.png
|
||||
24 6 0 hand.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 1 res/handwriting.png
|
||||
24 1 1 handwriting.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 2 5 res/left-side.png
|
||||
24 2 5 left-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 5 res/left-tee.png
|
||||
24 1 5 left-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 5 res/left.png
|
||||
24 1 5 left.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 10 10 res/move.png
|
||||
24 10 10 move.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 1 res/ne.png
|
||||
24 14 1 ne.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 1 res/nw.png
|
||||
24 1 1 nw.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 9 9 res/precision.png
|
||||
24 9 9 precision.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 10 4 res/resize-h.png
|
||||
24 10 4 resize-h.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/resize-nw-se.png
|
||||
24 7 7 resize-nw-se.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/resize-sw-ne.png
|
||||
24 7 7 resize-sw-ne.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 4 10 res/resize-v.png
|
||||
24 4 10 resize-v.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 5 res/right-side.png
|
||||
24 14 5 right-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 15 5 res/right-tee.png
|
||||
24 15 5 right-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 5 res/right.png
|
||||
24 14 5 right.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 14 res/se.png
|
||||
24 14 14 se.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 14 res/sw.png
|
||||
24 1 14 sw.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 9 4 res/text-select-vertical.png
|
||||
24 9 4 text-select-vertical.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 4 9 res/text-select.png
|
||||
24 4 9 text-select.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 2 res/top-side.png
|
||||
24 5 2 top-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 1 res/top-tee.png
|
||||
24 5 1 top-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 10 10 res/unavailable.png
|
||||
24 10 10 unavailable.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 1 res/up.png
|
||||
24 5 1 up.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/zoom-in.png
|
||||
24 7 7 zoom-in.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/zoom-out.png
|
||||
24 7 7 zoom-out.png
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
Package: cursor-theme-standard-no-shadows
|
||||
Version: 0.0.1
|
||||
Maintainer: Rory Fewell <roryf@oddmatics.uk>
|
||||
Architecture: all
|
||||
Section: non-free
|
||||
Description: The standard Windows XP cursor theme.
|
||||
31
cursors/with-shadow/standard/CMakeLists.txt
Normal file
31
cursors/with-shadow/standard/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(
|
||||
wintc-cursor-theme-standard-with-shadow
|
||||
VERSION 1.0
|
||||
DESCRIPTION "Windows Total Conversion Windows XP standard cursor theme (with shadows)."
|
||||
)
|
||||
|
||||
set(PROJECT_ANYARCH true)
|
||||
set(PROJECT_FREESTATUS false)
|
||||
set(PROJECT_MAINTAINER "Rory Fewell <roryf@oddmatics.uk>")
|
||||
|
||||
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
set(CURSOR_THEME_SHORTNAME standard-with-shadow)
|
||||
|
||||
include(../../../packaging/cmake-inc/common/CMakeLists.txt)
|
||||
include(../../../packaging/cmake-inc/cursors/CMakeLists.txt)
|
||||
include(../../../packaging/cmake-inc/mappings/CMakeLists.txt)
|
||||
include(../../../packaging/cmake-inc/packaging/CMakeLists.txt)
|
||||
|
||||
wintc_add_gen_xcursors_target()
|
||||
wintc_add_mappings_target(cursors)
|
||||
|
||||
# Installation
|
||||
#
|
||||
wintc_configure_and_install_packaging()
|
||||
|
||||
install(DIRECTORY ${CURSOR_COMPCURS_OUTPUT_DIR}/ DESTINATION ${CURSOR_PROJECT_INSTALL_PATH}/cursors/res)
|
||||
install(DIRECTORY ${XDG_BLDMAPS_OUTPUT_DIR}/ DESTINATION ${CURSOR_PROJECT_INSTALL_PATH}/cursors)
|
||||
install(FILES ${PROJECT_ROOT}/index.theme DESTINATION ${CURSOR_PROJECT_INSTALL_PATH})
|
||||
@@ -1 +1 @@
|
||||
24 4 1 res/alt-select.png
|
||||
24 4 1 alt-select.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 0 0 res/arrow-copy.png
|
||||
32 0 0 arrow-copy.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 0 0 res/arrow-help.png
|
||||
32 0 0 arrow-help.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 0 0 res/arrow-link.png
|
||||
32 0 0 arrow-link.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 0 0 res/arrow-move.png
|
||||
32 0 0 arrow-move.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 12 0 res/arrow-r.png
|
||||
24 12 0 arrow-r.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow-wait.png
|
||||
24 0 0 arrow-wait.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 0 0 res/arrow.png
|
||||
24 0 0 arrow.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 14 res/bottom-side.png
|
||||
24 5 14 bottom-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 14 res/bottom-tee.png
|
||||
24 5 14 bottom-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 6 11 res/busy.png
|
||||
24 6 11 busy.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/cell.png
|
||||
24 7 7 cell.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 14 res/down.png
|
||||
24 5 14 down.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 6 0 res/hand.png
|
||||
24 6 0 hand.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 1 1 res/handwriting.png
|
||||
32 1 1 handwriting.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 2 5 res/left-side.png
|
||||
24 2 5 left-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 5 res/left-tee.png
|
||||
24 1 5 left-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 5 res/left.png
|
||||
24 1 5 left.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 10 10 res/move.png
|
||||
32 10 10 move.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 1 res/ne.png
|
||||
24 14 1 ne.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 1 res/nw.png
|
||||
24 1 1 nw.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 9 9 res/precision.png
|
||||
24 9 9 precision.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 10 4 res/resize-h.png
|
||||
32 10 4 resize-h.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/resize-nw-se.png
|
||||
24 7 7 resize-nw-se.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/resize-sw-ne.png
|
||||
24 7 7 resize-sw-ne.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 4 10 res/resize-v.png
|
||||
24 4 10 resize-v.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 5 res/right-side.png
|
||||
24 14 5 right-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 15 5 res/right-tee.png
|
||||
24 15 5 right-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 5 res/right.png
|
||||
24 14 5 right.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 14 14 res/se.png
|
||||
24 14 14 se.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 1 14 res/sw.png
|
||||
24 1 14 sw.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 9 4 res/text-select-vertical.png
|
||||
24 9 4 text-select-vertical.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 4 9 res/text-select.png
|
||||
24 4 9 text-select.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 2 res/top-side.png
|
||||
24 5 2 top-side.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 1 res/top-tee.png
|
||||
24 5 1 top-tee.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
32 10 10 res/unavailable.png
|
||||
32 10 10 unavailable.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 5 1 res/up.png
|
||||
24 5 1 up.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/zoom-in.png
|
||||
24 7 7 zoom-in.png
|
||||
|
||||
@@ -1 +1 @@
|
||||
24 7 7 res/zoom-out.png
|
||||
24 7 7 zoom-out.png
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
Package: cursor-theme-standard-with-shadows
|
||||
Version: 0.0.1
|
||||
Maintainer: Rory Fewell <roryf@oddmatics.uk>
|
||||
Architecture: all
|
||||
Section: non-free
|
||||
Description: The standard Windows XP cursor theme, with pointer shadows.
|
||||
22
fonts/CMakeLists.txt
Normal file
22
fonts/CMakeLists.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(
|
||||
wintc-fonts-xp
|
||||
VERSION 1.0
|
||||
DESCRIPTION "Windows Total Conversion Windows XP fonts."
|
||||
)
|
||||
|
||||
set(PROJECT_ANYARCH true)
|
||||
set(PROJECT_FREESTATUS false)
|
||||
set(PROJECT_MAINTAINER "Rory Fewell <roryf@oddmatics.uk>")
|
||||
|
||||
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
include(../packaging/cmake-inc/common/CMakeLists.txt)
|
||||
include(../packaging/cmake-inc/packaging/CMakeLists.txt)
|
||||
|
||||
# Installation
|
||||
#
|
||||
wintc_configure_and_install_packaging()
|
||||
|
||||
install(DIRECTORY ${PROJECT_ROOT}/ttf/ DESTINATION share/fonts/truetype/wintc)
|
||||
@@ -6,10 +6,5 @@ This is just essentially a bin for fonts, the structure is as follows:
|
||||
|
||||
`ttf/` - contains the TrueType font files
|
||||
|
||||
`debian-control` - the `control` file used in Debian packaging to provide metadata about the package
|
||||
|
||||
## Installation
|
||||
See the `README.MD` under `/packaging/deb/fonts` for packaging and installation.
|
||||
|
||||
## Developing
|
||||
Should not need any further development in terms of additional fonts - these are all the fonts included with the RTM system.
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
Package: wintc-fonts-xp
|
||||
Version: 0.0.1
|
||||
Maintainer: Rory Fewell <roryf@oddmatics.uk>
|
||||
Architecture: all
|
||||
Section: non-free
|
||||
Description: Windows XP system fonts.
|
||||
@@ -6,18 +6,10 @@ Within each directory (eg. `luna`) these are the contents:
|
||||
|
||||
`res/` - contains the PNG images for each icon, divided into subfolders based on the icon size
|
||||
|
||||
`debian-control` - the `control` file used in Debian packaging to provide metadata about the package
|
||||
|
||||
`index.theme` - the actual freedesktop theme config file (that gets deployed to `/usr/share/icons`)
|
||||
|
||||
`mappings` - since there are lots of Freedesktop icon names that map to the same icon, the mappings file maps those Freedesktop icon names to the icons found under `/res` (formatted as `(freedesktop icon name)-->(icon filename minus extension)`)
|
||||
|
||||
## Installation
|
||||
If you would like to install the icon theme you should:
|
||||
- `cd` over to the `/packaging/deb/icons` directory
|
||||
- `./packicon.sh <theme>` (eg. `./packicon.sh luna` to build the Luna icon package)
|
||||
- `sudo dpkg -i <the package>.deb` (to install the package)
|
||||
|
||||
## Developing Icon Themes
|
||||
All that you need to do to add icons (or change icons is):
|
||||
- Place your icons in the appropriate directory under `/res`
|
||||
|
||||
36
icons/luna/CMakeLists.txt
Normal file
36
icons/luna/CMakeLists.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(
|
||||
wintc-icon-theme-luna
|
||||
VERSION 1.0
|
||||
DESCRIPTION "Windows Total Conversion Windows XP icon theme."
|
||||
)
|
||||
|
||||
set(PROJECT_ANYARCH true)
|
||||
set(PROJECT_FREESTATUS false)
|
||||
set(PROJECT_MAINTAINER "Rory Fewell <roryf@oddmatics.uk>")
|
||||
|
||||
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
set(ICON_THEME_SHORTNAME luna)
|
||||
|
||||
include(../../packaging/cmake-inc/common/CMakeLists.txt)
|
||||
include(../../packaging/cmake-inc/icons/CMakeLists.txt)
|
||||
include(../../packaging/cmake-inc/mappings/CMakeLists.txt)
|
||||
include(../../packaging/cmake-inc/packaging/CMakeLists.txt)
|
||||
|
||||
wintc_add_mappings_target(icons)
|
||||
|
||||
# Configure postinstall script
|
||||
#
|
||||
set(PROJECT_POSTINSTALL_SCRIPT ${CMAKE_BINARY_DIR}/postinstall.sh)
|
||||
|
||||
configure_file(postinstall.sh ${PROJECT_POSTINSTALL_SCRIPT} @ONLY)
|
||||
|
||||
# Installation
|
||||
#
|
||||
wintc_configure_and_install_packaging()
|
||||
|
||||
install(DIRECTORY ${PROJECT_ROOT}/res DESTINATION ${ICON_PROJECT_INSTALL_PATH})
|
||||
install(DIRECTORY ${XDG_BLDMAPS_OUTPUT_DIR}/ DESTINATION ${ICON_PROJECT_INSTALL_PATH})
|
||||
install(FILES ${PROJECT_ROOT}/index.theme DESTINATION ${ICON_PROJECT_INSTALL_PATH})
|
||||
@@ -1,6 +0,0 @@
|
||||
Package: icon-theme-luna
|
||||
Version: 0.0.1
|
||||
Maintainer: Rory Fewell <roryf@oddmatics.uk>
|
||||
Architecture: all
|
||||
Section: non-free
|
||||
Description: The Windows XP icon theme.
|
||||
3
icons/luna/postinstall.sh
Normal file
3
icons/luna/postinstall.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
gtk-update-icon-cache @CMAKE_INSTALL_PREFIX@/share/icons/luna
|
||||
@@ -1,10 +1,14 @@
|
||||
# Packaging
|
||||
This directory contains scripts for creating packages for all the various components found in this repository.
|
||||
This directory contains the source files for packaging components.
|
||||
|
||||
## Structure
|
||||
Each 'type' of component has its own packaging script, in a subdirectory with appropriate notes (cursors, desktop theme, programs etc.). Explore the contents below here and you should find `README`s explaining how to use the scripts and install the components.
|
||||
The contents of this directory is as follows:
|
||||
|
||||
`cmake-inc/` - common CMake scripts to be included by components in their builds
|
||||
|
||||
`deb/` - Debian (`.deb`) packaging
|
||||
|
||||
## Support?
|
||||
At the moment you'll notice there is only a `deb` subdirectory. I personally use Debian, so I have got package scripts that generate `.deb` packages so far - if you're also a Debian user, or you use a derivative such as Ubuntu, then you should be good to go.
|
||||
At the moment you'll notice there is only a `deb` subdirectory. I personally use Debian, so I have got Debian packaging functional - if you're also a Debian user, or you use a derivative such as Ubuntu, then you should be good to go.
|
||||
|
||||
For users on Linux distributions that use other package managers, I will get around to supporting those one day, it just takes a lot of work and a lot of testing. This `README` will be updated to reflect the status of package manager support when the work is done.
|
||||
|
||||
@@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(REPO_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../..)
|
||||
|
||||
set(WINTC_COMPILE_OPTIONS -Wall -Wextra -Wpedantic -Werror)
|
||||
set(WINTC_ASSETS_INSTALL_DIR share/wintc)
|
||||
|
||||
function(wintc_source_vars SOURCE_PATH)
|
||||
file(STRINGS ${SOURCE_PATH} sourceLines)
|
||||
|
||||
|
||||
38
packaging/cmake-inc/cursors/CMakeLists.txt
Normal file
38
packaging/cmake-inc/cursors/CMakeLists.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
# Check stuff we need is defined
|
||||
#
|
||||
if (NOT DEFINED CURSOR_THEME_SHORTNAME)
|
||||
message(FATAL_ERROR "You must define CURSOR_THEME_SHORTNAME")
|
||||
endif ()
|
||||
|
||||
# Define constants
|
||||
#
|
||||
set(CURSOR_PROJECT_INSTALL_PATH share/icons/${CURSOR_THEME_SHORTNAME})
|
||||
|
||||
set(CURSOR_COMPCURS_TOOL_DIR ${REPO_ROOT}/tools/bldutils/compcurs)
|
||||
set(CURSOR_COMPCURS_OUTPUT_DIR ${CMAKE_BINARY_DIR}/compiled-cursors)
|
||||
|
||||
# Define function for generating xcursors
|
||||
#
|
||||
function(wintc_add_gen_xcursors_target)
|
||||
find_package(PythonInterp 3.0 REQUIRED)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CURSOR_COMPCURS_OUTPUT_DIR}
|
||||
WORKING_DIRECTORY ${CURSOR_COMPCURS_TOOL_DIR}
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
compcurs.py
|
||||
${PROJECT_ROOT}/cfg
|
||||
${PROJECT_ROOT}/res
|
||||
${CURSOR_COMPCURS_OUTPUT_DIR}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
compile-cursors ALL
|
||||
DEPENDS
|
||||
${CURSOR_COMPCURS_OUTPUT_DIR}
|
||||
)
|
||||
endfunction()
|
||||
11
packaging/cmake-inc/icons/CMakeLists.txt
Normal file
11
packaging/cmake-inc/icons/CMakeLists.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
# Check stuff we need is defined
|
||||
#
|
||||
if (NOT DEFINED ICON_THEME_SHORTNAME)
|
||||
message(FATAL_ERROR "You must define ICON_THEME_SHORTNAME")
|
||||
endif ()
|
||||
|
||||
# Define constants for build paths
|
||||
#
|
||||
set(ICON_PROJECT_INSTALL_PATH share/icons/${ICON_THEME_SHORTNAME})
|
||||
29
packaging/cmake-inc/libraries/CMakeLists.txt
Normal file
29
packaging/cmake-inc/libraries/CMakeLists.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
cmake_minimum_required(VERSION 3.9)
|
||||
|
||||
# Define some constants
|
||||
#
|
||||
set(DEFAULT_LIB_PKGCONFIG ${CMAKE_CURRENT_LIST_DIR}/pkgconfig.pc.in)
|
||||
|
||||
# Prevent CMake from prepending 'lib' on libraries
|
||||
#
|
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||
set(CMAKE_SHARED_MODULE_PREFIX "")
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "")
|
||||
|
||||
# Extract library's name
|
||||
#
|
||||
if (${PROJECT_NAME} MATCHES "^lib(.+)")
|
||||
set(LIB_NAME ${CMAKE_MATCH_1})
|
||||
else()
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"Library project names must start with 'lib'."
|
||||
)
|
||||
endif()
|
||||
|
||||
# Function for adding pkgconfig to install
|
||||
#
|
||||
function(wintc_add_pkgconfig_install)
|
||||
configure_file(${DEFAULT_LIB_PKGCONFIG} ${LIB_NAME}.pc @ONLY)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/${LIB_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
endfunction()
|
||||
@@ -1,13 +1,12 @@
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/@ARCH_DIR@
|
||||
libdir=${prefix}/@LIB_DIR@
|
||||
includedir=${exec_prefix}/include
|
||||
pkgconfigdir=/@ARCH_DIR@/pkgconfig
|
||||
|
||||
Name: @PROJECT_NAME@
|
||||
Description: @PROJECT_DESCRIPTION@
|
||||
Version: @PROJECT_VERSION@
|
||||
|
||||
Requires:
|
||||
Libs: -L${libdir} -lwintc-exec
|
||||
Libs: -L${libdir} -l@LIB_NAME@
|
||||
Cflags: -I${includedir}
|
||||
104
packaging/cmake-inc/locale/CMakeLists.txt
Normal file
104
packaging/cmake-inc/locale/CMakeLists.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
# Define supported languages - these are languages supported by Windows XP MUIs
|
||||
#
|
||||
set(
|
||||
WINTC_SUPPORTED_LANGUAGES
|
||||
ar_SA
|
||||
bg_BG
|
||||
cs_CZ
|
||||
da_DK
|
||||
de_DE
|
||||
el_GR
|
||||
es_ES
|
||||
et_EE
|
||||
fi_FI
|
||||
fr_FR
|
||||
he_IL
|
||||
hr_HR
|
||||
hu_HU
|
||||
it_IT
|
||||
ja_JP
|
||||
ko_KR
|
||||
lt_LT
|
||||
lv_LV
|
||||
nb_NO
|
||||
nl_NL
|
||||
pl_PL
|
||||
pt_BR
|
||||
pt_PT
|
||||
ro_RO
|
||||
ru_RU
|
||||
sk_SK
|
||||
sl_SI
|
||||
sv_SE
|
||||
th_TH
|
||||
tr_TR
|
||||
zh_CN
|
||||
zh_TW
|
||||
)
|
||||
|
||||
# Define build for config.h
|
||||
#
|
||||
set(WINTC_CONFIG_H_IN_PATH ${CMAKE_CURRENT_LIST_DIR}/config.h.in)
|
||||
|
||||
function(wintc_create_config_h)
|
||||
configure_file(${WINTC_CONFIG_H_IN_PATH} ${PROJECT_ROOT}/src/config.h @ONLY)
|
||||
endfunction()
|
||||
|
||||
# Define build for meta.h
|
||||
#
|
||||
set(WINTC_META_H_IN_PATH ${CMAKE_CURRENT_LIST_DIR}/meta.h.in)
|
||||
|
||||
function(wintc_create_meta_h)
|
||||
configure_file(${WINTC_META_H_IN_PATH} ${PROJECT_ROOT}/src/meta.h @ONLY)
|
||||
endfunction()
|
||||
|
||||
# Define build for languages
|
||||
#
|
||||
function(wintc_compile_and_install_pofiles)
|
||||
# Call msgfmt
|
||||
#
|
||||
# Add a command to build each po->mo one by one, do NOT pass all the inputs
|
||||
# to one msgfmt command like I did at first because it treats ALL inputs as
|
||||
# making ONE output (as a result you get loads of 'duplicate message
|
||||
# definition' errors and end up in a state of utter confusion)
|
||||
#
|
||||
find_program(MSGFMT msgfmt)
|
||||
|
||||
foreach (LOCALE_STR ${WINTC_SUPPORTED_LANGUAGES})
|
||||
set(NEXT_POFILE ${PROJECT_ROOT}/po/${LOCALE_STR}.po)
|
||||
set(NEXT_MOFILE ${CMAKE_BINARY_DIR}/locale/${LOCALE_STR}/${PROJECT_NAME}.mo)
|
||||
|
||||
list(
|
||||
APPEND
|
||||
OUTPUT_MOFILES
|
||||
${NEXT_MOFILE}
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${NEXT_MOFILE}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND mkdir
|
||||
ARGS
|
||||
-p
|
||||
${CMAKE_BINARY_DIR}/locale/${LOCALE_STR}
|
||||
COMMAND ${MSGFMT}
|
||||
ARGS
|
||||
${NEXT_POFILE}
|
||||
-o
|
||||
${NEXT_MOFILE}
|
||||
VERBATIM
|
||||
DEPENDS
|
||||
${NEXT_POFILE}
|
||||
)
|
||||
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/locale/${LOCALE_STR}/ DESTINATION share/locale/${LOCALE_STR}/LC_MESSAGES)
|
||||
endforeach()
|
||||
|
||||
add_custom_target(
|
||||
build-mofiles ALL
|
||||
DEPENDS
|
||||
${OUTPUT_MOFILES}
|
||||
)
|
||||
endfunction()
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef __CONFIG_H__
|
||||
#define __CONFIG_H__
|
||||
|
||||
#define GETTEXT_PACKAGE "wintc-shllang"
|
||||
#define GETTEXT_PACKAGE "@PROJECT_NAME@"
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user