Wednesday, 31 October 2018
Re: [Rpcemu] PATCH: Implement OS_Reset "0x0ff"
<20181031121523.GD1841@chiark.greenend.org.uk>:
> PRM 5a doesn't mention any parameters to OS_Reset - can anyone confirm the
> above hex number is correct for power off?
https://www.riscosopen.org/wiki/documentation/show/OS_Reset
--
Steve Fryatt - Leeds, England
http://www.stevefryatt.org.uk/
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] PATCH: Implement OS_Reset "0x0ff"
Thanks (corrected to "&OFF"; a case where the code lagged behind the comment). Indeed, the online documentation at https://www.riscosopen.org/wiki/documentation/show/OS_Reset has the right hex but the wrong ASCII.
Re: [Rpcemu] PATCH: Implement OS_Reset "0x0ff"
branch: trunk
user: rrt@sc3d.org
date: Mon Sep 10 23:23:00 2018 +0100
summary: Add support for powering off
diff -r f224afc8c4d6 -r e1de572e7804 src/arm_common.c
--- a/src/arm_common.c Mon Sep 10 23:22:01 2018 +0100
+++ b/src/arm_common.c Mon Sep 10 23:23:00 2018 +0100
@@ -38,6 +38,8 @@
#define SWI_OS_Byte 0x6
#define SWI_OS_Word 0x7
#define SWI_OS_Mouse 0x1c
+#define SWI_OS_ReadSysInfo 0x58
+#define SWI_OS_Reset 0x6a
#define SWI_OS_CallASWI 0x6f
#define SWI_OS_CallASWIR12 0x71
@@ -372,6 +374,19 @@
}
}
+ /* Intercept OS_Reset to check for turning off
+ https://www.riscosopen.org/wiki/documentation/show/OS_Reset
+ */
+ if (swinum == SWI_OS_Reset) {
+ if (arm.reg[0] == 0x46464F26) { /* "&OFF" */
+ exit(0);
+ }
+ } else if (swinum == SWI_OS_ReadSysInfo && arm.reg[0] == 8) {
+ arm.reg[0] = 0; /* Unknown hardware platform */
+ arm.reg[1] = 0x08; /* Software control over PSU supported */
+ return;
+ }
+
/* Intercept RISC OS Portable SWIs to enable RPCEmu to sleep when
RISC OS is idle */
if (config.cpu_idle) {
Hi Reuben,
Couple of minor comments.
> + /* Intercept OS_Reset to check for turning off
> + https://www.riscosopen.org/wiki/documentation/show/OS_Reset
> + */
> + if (swinum == SWI_OS_Reset) {
> + if (arm.reg[0] == 0x46464F26) { /* 0x0ff */
It's "&0ff", not 0x0ff.
Use `else if' as the previous if being true might not result in the
exit().
Re: [Rpcemu] PATCH: Implement OS_Reset "0x0ff"
> > > + if (arm.reg[0] == 0x46464F26) { /* 0x0ff */
> >
> > It's "&0ff", not 0x0ff.
>
> I think it's a bug in the webpage, but the hex spells "&OFF"
Yes, sorry, that's what I meant, having read the bytes, but messed up by
the time I wrote the email.
--
Cheers, Ralph.
https://plus.google.com/+RalphCorderoy
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] PATCH: Implement OS_Reset "0x0ff"
> Hi Reuben,
>
> Couple of minor comments.
>
> > + /* Intercept OS_Reset to check for turning off
> > + https://www.riscosopen.org/wiki/documentation/show/OS_Reset
> > + */
> > + if (swinum == SWI_OS_Reset) {
> > + if (arm.reg[0] == 0x46464F26) { /* 0x0ff */
>
> It's "&0ff", not 0x0ff.
I think it's a bug in the webpage, but the hex spells "&OFF"
(letter oh not number zero, all capitalised).
PRM 5a doesn't mention any parameters to OS_Reset - can anyone confirm the
above hex number is correct for power off?
Theo
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] PATCH: Implement OS_Reset "0x0ff"
Couple of minor comments.
> + /* Intercept OS_Reset to check for turning off
> + https://www.riscosopen.org/wiki/documentation/show/OS_Reset
> + */
> + if (swinum == SWI_OS_Reset) {
> + if (arm.reg[0] == 0x46464F26) { /* 0x0ff */
It's "&0ff", not 0x0ff.
> + exit(0);
> + }
> + }
> +
> + if (swinum == SWI_OS_ReadSysInfo && arm.reg[0] == 8) {
Use `else if' as the previous if being true might not result in the
exit().
> + arm.reg[0] = 0; /* Unknown hardware platform */
> + arm.reg[1] = 0x08; /* Software control over PSU supported */
> + return;
> + }
--
Cheers, Ralph.
https://plus.google.com/+RalphCorderoy
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Tuesday, 30 October 2018
[Rpcemu] PATCH: Implement OS_Reset "0x0ff"
branch: trunk
user: rrt@sc3d.org
date: Mon Sep 10 23:23:00 2018 +0100
summary: Add support for powering off
diff -r f224afc8c4d6 -r e1de572e7804 src/arm_common.c
--- a/src/arm_common.c Mon Sep 10 23:22:01 2018 +0100
+++ b/src/arm_common.c Mon Sep 10 23:23:00 2018 +0100
@@ -38,6 +38,8 @@
#define SWI_OS_Byte 0x6
#define SWI_OS_Word 0x7
#define SWI_OS_Mouse 0x1c
+#define SWI_OS_ReadSysInfo 0x58
+#define SWI_OS_Reset 0x6a
#define SWI_OS_CallASWI 0x6f
#define SWI_OS_CallASWIR12 0x71
@@ -372,6 +374,21 @@
}
}
+ /* Intercept OS_Reset to check for turning off
+ https://www.riscosopen.org/wiki/documentation/show/OS_Reset
+ */
+ if (swinum == SWI_OS_Reset) {
+ if (arm.reg[0] == 0x46464F26) { /* 0x0ff */
+ exit(0);
+ }
+ }
+
+ if (swinum == SWI_OS_ReadSysInfo && arm.reg[0] == 8) {
+ arm.reg[0] = 0; /* Unknown hardware platform */
+ arm.reg[1] = 0x08; /* Software control over PSU supported */
+ return;
+ }
+
/* Intercept RISC OS Portable SWIs to enable RPCEmu to sleep when
RISC OS is idle */
if (config.cpu_idle) {
Sunday, 28 October 2018
Fwd: [retrocomputing devroom] FOSDEM 2019 - Retrocomputing DevRoom CfP
Sujet : [retrocomputing devroom] FOSDEM 2019 - Retrocomputing DevRoom CfP
Date : Sun, 28 Oct 2018 23:12:58 +0100
De : Pau Garcia Quiles <pgquiles@elpauer.org>
Pour : FOSDEM visitors <fosdem@lists.fosdem.org>
Copie à : retrocomputing-devroom@lists.fosdem.org
Hello,
FOSDEM 2019 - Retrocomputing DevRoom Call for Participation
FOSDEM is a free software event that offers open source communities a
place to meet, share ideas and collaborate. It is renown for being
highly developer-oriented and brings together 8000+ participants from
all over the world. It is held in the city of Brussels (Belgium).
FOSDEM 2019 will take place during the weekend of February 2nd-3rd
2019. More details about the event can be found at
http://www.fosdem.org.
CALL FOR PARTICIPATION
After last year's success, the Retrocomputing DevRoom will be back in
2019, with talks about use of older computing hardware and software in
modern times.
Presentation topics could include but are not limited to:
- Emulation of old systems to run videogames, legacy software, etc
- New software, hardware or related to be used with classic systems
- Open source software emulation/simulation
- Open hardware
- Operating systems/executives for retrocomputers/retrosystems
- Uses of retrocomputing today
- Other retrosystems topics
- Opportunities in retrocomputing
You are not limited to slide presentations, of course. Be creative.
However, FOSDEM is an open source conference, therefore we ask you to
stay clear of marketing presentations. We are not afraid of technical
stuff: devrooms are a place for development teams to meet, discuss,
hack and publicly present their project's latest improvements and
future directions.
If you will have special needs for your talk (e. g. because you will
need to plug some sort of a system), please note that clearly in your
proposal so that we can provide it.
You can use the Wikipedia definition of retrocomputing as a reference
definition to see if you talk qualifies, although it is not exclusive:
https://en.wikipedia.org/wiki/Retrocomputing
IMPORTANT DATES
- 30 November 2018: submission deadline for talk proposals
- 16 December 2018: announcement of the final schedule
- 2 February 2019: Retrocomputing DevRoom
USEFUL INFORMATION
Use the FOSDEM Pentabarf tool to submit your proposal:
https://penta.fosdem.org/submission/FOSDEM19
- If necessary, create a Pentabarf account and activate it. Please
reuse your account from previous years if you have already created it.
- In the "Person" section, provide First name, Last name (in the
"General" tab), Email (in the "Contact" tab) and Bio ("Abstract" field
in the "Description" tab).
- Submit a proposal by clicking on "Create event".
- Important! Select the "Retrocomputing DevRoom" track (on the
"General" tab). If you do not select a track, then nobody, from any
track, will look at your submission!
- Provide the title of your talk ("Event title" in the "General" tab).
- Provide a description of the subject of the talk and the intended
audience (in the "Abstract" field of the "Description" tab)
- Provide a rough outline of the talk or goals of the session (a short
list of bullet points covering topics that will be discussed) in the
"Full description" field in the "Description" tab
- Provide an expected length of your talk in the "Duration" field,
including discussion. The default duration is 30 minutes.
Please note neither FOSDEM nor the Retrocomputing DevRoom will
reimburse any expenses you incur
RECORDING OF TALKS
The FOSDEM organizers plan to have live streaming and recording fully
working, both for remote/later viewing of talks, and so that people
can watch streams in the hallways when rooms are full. This requires
speakers to consent to being recorded and streamed.
If you plan to be a speaker, please understand that by doing so you
implicitly give consent for your talk to be recorded and streamed. The
recordings will be published under the same license as all FOSDEM
content (CC-BY).
Hope to hear from you soon! And please forward this announcement.
CONTACT
The Retrocomputing DevRoom is managed by Pau Garcia Quiles
(retrocomputing-devroom-manager at fosdem.org).
A mailing list of speakers, audience and the curious is available,
please subscribe at:
https://lists.fosdem.org/listinfo/retrocomputing-devroom
--
Pau Garcia Quiles
http://www.elpauer.org
_______________________________________________
retrocomputing-devroom mailing list
retrocomputing-devroom@lists.fosdem.org
https://lists.fosdem.org/listinfo/retrocomputing-devroom
Friday, 26 October 2018
Re: [Rpcemu] RPCEmu (linux) Hangs on seeing uniboot (RO 3.71)
> On Thu, 25 Oct 2018, at 04:38, Bryan Hogan wrote:
>> In message <a7b85a11-151e-bbb7-ba8d-ae4d388f8a38@dewberryfields.co.uk>
>> Michael Howard <mike@dewberryfields.co.uk> wrote:
>>
>>> Using any cpu configuration other that SA causes the emulator to hang as
>>> soon as it 'sees' the uniboot !Boot folder.
>> IIRC this is caused by the StrongARM version of the BootVars program
>> failing on any other cpu type. Maybe you could use a copy of BootVars
>> from an earlier uniboot?
> If there is an issue with BootVars, then I suspect later (post-Acorn?) builds
> will be fine.
>
> You can use the RISC OS 5 disc image (including the boot sequence) on
> versions of RISC OS right back to 3.1.
This does solve the problem.
> Apart from historical interest, I'm not sure there is much reason to use
> the old Acorn boot sequence.
Perhaps when using an image from a 'real' system.
--
Mike Howard
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] RPCEmu (linux) Hangs on seeing uniboot (RO 3.71)
> In message <a7b85a11-151e-bbb7-ba8d-ae4d388f8a38@dewberryfields.co.uk>
> Michael Howard <mike@dewberryfields.co.uk> wrote:
>
> > Using any cpu configuration other that SA causes the emulator to hang as
> > soon as it 'sees' the uniboot !Boot folder.
>
> IIRC this is caused by the StrongARM version of the BootVars program
> failing on any other cpu type. Maybe you could use a copy of BootVars
> from an earlier uniboot?
If there is an issue with BootVars, then I suspect later (post-Acorn?) builds
will be fine.
You can use the RISC OS 5 disc image (including the boot sequence) on
versions of RISC OS right back to 3.1.
Apart from historical interest, I'm not sure there is much reason to use
the old Acorn boot sequence.
--
Richard Walker
richardwalker@letterboxes.org
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Wednesday, 24 October 2018
Re: [Rpcemu] RPCEmu (linux) Hangs on seeing uniboot (RO 3.71)
Michael Howard <mike@dewberryfields.co.uk> wrote:
> Using any cpu configuration other that SA causes the emulator to hang as
> soon as it 'sees' the uniboot !Boot folder.
IIRC this is caused by the StrongARM version of the BootVars program
failing on any other cpu type. Maybe you could use a copy of BootVars
from an earlier uniboot?
Personally I just always run with SA as the cpu config!
Bryan.
PS. Does this still happen with RPCEmu 0.9.1? I've not tried it yet.
PPS. Come and discuss this with the RPCEmu authors at this weekend's
RISC OS London Show!
--
RISC OS User Group Of London - http://www.rougol.jellybaby.net/
RISC OS London Show - http://www.riscoslondonshow.co.uk/
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
[Rpcemu] Android?
Considering the news of the open sourcing of RISC OS 5, is it possible to compile RPCEmu for Android, as it supports Qt?
This could be a huge opportunity for RISC OS and RPCEmu, as it is a very lightweight OS that could be run through virtualisation on old ARM based Android phones with video out (MHL) - essentially turning them into cheap RiscPCs. The only option currently is Linux, which is far more taxing than RISC OS.
With this, there's also the potential of being able to run it on Chrome OS as well.
Thanks
[Rpcemu] RPCEmu (linux) Hangs on seeing uniboot (RO 3.71)
Any ideas?
-- Mike Howard
[Rpcemu] RPCEmu 0.9.1
A new version of RPCEmu is available, 0.9.1 http://www.marutan.net/rpcemu/
Changes in this release
User Interface - A screenshot can be saved of the current display, by choosing 'Take Screenshot...' from the File menu. - Entering full-screen mode displays a reminder of how to leave this
mode. The message can be hidden by ticking the checkbox. - Choosing 'Reset' or 'Exit' from the File menu will request confirmation
before taking the action. - The CD-ROM sub-menu has moved to the Disc menu. Networking - The EtherRPCEm driver module now works with RISC OS Select 3 or later
(4.39 - 6.20). - Networking configuration now requires fewer steps to be performed in
RISC OS as a result of the following changes. The documentation has been updated to reflect this. - The driver module is now provided directly by the networking podule. This means there is no need to install the driver in the Boot
sequence. - The driver module is now 26/32-bit neutral. This means that there is no
need to install an updated SharedCLibrary for the network driver. Note,
you may well still need this update for application compatibility. - The driver module now auto-installs AutoSense file in Boot sequence. HostFS - The Create-Dir, Rename and Save entry points now return an error if part of the path is invalid, instead of saving the file to a wrong location. Keyboard - Keys can no longer get 'stuck' if held down when interacting with GUI menus. Other fixes - Some potential crash scenarios when resetting/exiting have been fixed. Windows - Shift-F10 key-presses are now passed through to the emulated machine, instead of invoking the Windows context menu handler. - If you are using a keyboard layout with 'dead keys' (e.g. US-International) these key presses are now passed through. Dead keys are used to compose accented characters, and are not found on the UK keyboard layout. - The Windows executable has Data Execution Prevention (DEP) enabled. All the keyboard fixes and the enabling of DEP are based on contributions by J. Percival. Matthew Howkins Peter Howkins
Monday, 22 October 2018
Re: the "up" button misbehaveth
<netsurf@abbeypress.co.uk> wrote:
> The "up" button
[Snip]
> It deletes the tail of the URL back to a "/", and a second click back
> to the next "/", etc.
> However, its behaviour has been a bit wonky in recent versions of
> Netsurf. Sometimes the truncation is back to the middle of something,
> rather than back to a "/".
> I'm using #4451 on ArmX6 Ro 5.25 and Armini(Beagle) 5.22, but this
> misbehaviour began more than a year ago and unforch I can't say exactly
> which #.
> Anyone see the same?
Not a feature I use to be fair so hadn't noticed this is broken in #4317
http://timil.com/riscos/calendar/
UP to
http://timil.com/riscos/
which (correctly) redirects to
http://timil.com/riscos/index/
UP to
403 error
Then repeated use of UP results in partial edits of the URL, as you say.
Huh? That should have been a reload, after it should have encountered the
same redirect again. Just tried and #4085, #3403 have the same problem.
A link on a page to "../" or the delete key in the address bar both work.
--
Tim Hill
--------
Find an event to attend at:
http://timil.com/riscos/calendar/
Mimemap and other stuff:
http://timil.com/riscos/
the "up" button misbehaveth
"move up directory tree") I find really useful. A feature Netsurf has
that mainstream browsers don't (as far as I know).
It deletes the tail of the URL back to a "/", and a second click back to
the next "/", etc.
However, its behaviour has been a bit wonky in recent versions of Netsurf.
Sometimes the truncation is back to the middle of something, rather than
back to a "/".
I'm using #4451 on ArmX6 Ro 5.25 and Armini(Beagle) 5.22, but this
misbehaviour began more than a year ago and unforch I can't say exactly
which #.
Anyone see the same?
--
Jim Nagel www.archivemag.co.uk
Wednesday, 17 October 2018
[Rpcemu] RPCEmu at the RISC OS London Show (take 2)
will be having a stand to demonstrate the latest updates and talk to
people about future plans.
http://www.riscoslondonshow.co.uk/
The show is in Feltham, west London and is easily accessible via
public transport and the motorway network.
Join us and bring your questions and suggestions!
Peter
ps My apologies if you are receiving a message like this twice, there
were some issues with the mailing list sending mails to some
addresses, and it seems a good excuse to post this again to test it.
_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Tuesday, 16 October 2018
Re: netsurf for anonymous browsing
> how much netsurf willing to handle and support to be used for privacy
> protection?
It's not a particular goal of ours.
> i tried it with I2P , and i found it working good with 3.6 installed
> from debian repo.
That's interesting to learn.
> but wonder if the browser leaky by default or not. if so, any willing to
> make to happen for secure,private browsing?
We're certainly not making any particular effort toward privacy management
but would be willing to entertain patches to improve matters.
D.
--
Daniel Silverstone http://www.netsurf-browser.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69
Re: missing LibCSS
> Im trying to build netsurf in debian using these instructions:
>
> https://source.netsurf-browser.org/netsurf.git/plain/docs/quick-start.md
>
> but when i reach this step:
[snip]
> i tried to download the source code and done the same steps , i got the
> same results.
Hi,
Unfortunately it looks like that file is missing the instruction to do (before
the 'cd netsurf'):
$ ns-make-libs install
I hope that helps.
D.
--
Daniel Silverstone http://www.netsurf-browser.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69
Monday, 15 October 2018
netsurf for anonymous browsing
protection?
i tried it with I2P , and i found it working good with 3.6 installed
from debian repo.
but wonder if the browser leaky by default or not. if so, any willing to
make to happen for secure,private browsing?
Thank You!
missing LibCSS
Im trying to build netsurf in debian using these instructions:
https://source.netsurf-browser.org/netsurf.git/plain/docs/quick-start.md
but when i reach this step:
$ cd netsurf
To build the native front end (the GTK front end on Linux, BSDs, etc)
you could do:
$ make
it gives me this message:
}}}
M.CONFIG: JPEG (libjpeg) enabled (NETSURF_USE_JPEG := YES)
M.CONFIG: PDF export (haru) disabled (NETSURF_USE_HARU_PDF := NO)
M.CONFIG: glibc internal iconv enabled (NETSURF_USE_LIBICONV_PLUG
:= YES)
M.CONFIG: Javascript (Duktape) enabled (NETSURF_USE_DUKTAPE := YES)
PKG.CNFG: CSS (libcss) failed
Makefile:521: *** Unable to find library for: CSS (libcss). Stop.
{{{
i tried to download the source code and done the same steps , i got the
same results.
Monday, 8 October 2018
[Rpcemu] RPCEmu at the RISC OS London Show, 27/20/2018
will be having a stand to demonstrate the latest updates and talk to
people about future plans.
http://www.riscoslondonshow.co.uk/
The show is in Feltham, west London and is easily accessible via
public transport and the motorway network.
Join us and bring your questions and suggestions!
Peter
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Thursday, 4 October 2018
Re: [Rpcemu] RPC Emu 0.8.14 on OS X High Sierra
> Hi Theo,
>
> I did have a read through that thread prior to posting this email - at the
> moment I'm not into compiling the binaries, mainly due to my MacBook Air
> only having 128GB storage (of which nearly half is used, through constant
> removal of unneeded data every month). However, I should be getting
> myself a second hand Pro with a 500GB hard drive, so these problems will
> magically go away (to be replaced with a slower data access speed).
Oh, I thought in that forest of links they had released a binary - my
mistake. Maybe they can be prodded into doing so?
(there isn't an official release process for the Mac versions of RPCEmu,
because Peter and Matthew don't have a Mac, and the Allegro version of
RPCEmu needed some horribleness done to add the ancient Carbon to XCode to
make it build. It should be a lot easier with Qt, but at the end of the day
it still needs someone with a Mac to push builds out the door)
Theo
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] RPC Emu 0.8.14 on OS X High Sierra
I did have a read through that thread prior to posting this email - at the moment I'm not into compiling the binaries, mainly due to my MacBook Air only having 128GB storage (of which nearly half is used, through constant removal of unneeded data every month). However, I should be getting myself a second hand Pro with a 500GB hard drive, so these problems will magically go away (to be replaced with a slower data access speed).
Cheers,
Gerald.
From the MacBook Air of Gerald Holdsworth
www.geraldholdsworth.co.uk
www.reptonresourcepage.co.uk
> On 4 Oct 2018, at 12:25, Theo Markettos <theo@markettos.org.uk> wrote:
>
> On Wed, Oct 03, 2018 at 01:16:11PM +0100, Gerald Holdsworth wrote:
>> Aha - using the Alt and Ctrl keys work.
>
> For what it's worth, it might be worth trying the new Qt version of RPCEmu,
> for which someone has fixed the keyboard issues on MacOS:
> https://stardot.org.uk/forums/viewtopic.php?f=30&t=15360
>
> I haven't tried it, but I would expect a lot of the problems caused by the
> old RPCEmu using ancient Carbon APIs to be improved.
>
> (for the record, that thread says someone submitted a patch to the mailing
> list which was waiting for approval. So it's presumably stuck in the
> moderation queue, if moderators haven't yet dealt with it)
>
> Theo
>
> _______________________________________________
> Rpcemu mailing list
> Rpcemu@riscos.info
> http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] RPC Emu 0.8.14 on OS X High Sierra
> Aha - using the Alt and Ctrl keys work.
For what it's worth, it might be worth trying the new Qt version of RPCEmu,
for which someone has fixed the keyboard issues on MacOS:
https://stardot.org.uk/forums/viewtopic.php?f=30&t=15360
I haven't tried it, but I would expect a lot of the problems caused by the
old RPCEmu using ancient Carbon APIs to be improved.
(for the record, that thread says someone submitted a patch to the mailing
list which was waiting for approval. So it's presumably stuck in the
moderation queue, if moderators haven't yet dealt with it)
Theo
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Wednesday, 3 October 2018
SVG elements without width/height attributes in IMG
I just noticed when testing a beta website in NS that doing
<img src="foo.svg">
with foo.svg having only a viewPort but no width and height attributes
seems to render as 1x1 image. Shouldn't it fallback to the viewport boungs?
François.
gcc -dumpversion error
the makefile:
expr: syntax error: expecting ')' instead of '6'
expr: syntax error: expecting ')' instead of '1'
This is because gcc -dumpversion returns only "8".
It seems this is expected output, cf.
https://stackoverflow.com/questions/45168516/gcc-7-1-1-on-fedora-26-dumpversion-now-only-includes-major-version-by-default
So it should use -dumpfullversion -dumpversion
(both, as older gcc don't know about the first option.)
Re: [Rpcemu] RPC Emu 0.8.14 on OS X High Sierra
Thank you.
Gerald.
From the MacBook Air of Gerald Holdsworth
www.geraldholdsworth.co.uk
www.reptonresourcepage.co.uk
> On 3 Oct 2018, at 11:34, David Pitt <pittdj@pittdj.co.uk> wrote:
>
> Gerald Holdsworth, on 3 Oct, wrote:
>
>> I recently upgraded my Mac to High Sierra and for some reason, whether it
>> did this during the upgrade, or something else happened, but the settings
>> for my RPCEmu install got changed. I noticed that the mouse pointer was
>> laggy - turns out that 'Reduce CPU usage' had been ticked.
>
> I am now on Mojave and I don't see that here on my iMac, nor did I
> previously on High Sierra, the mouse pointer is fine with 'Reduce CPU
> usage'. It is however a real mouse. Previously I used a Magic Mouse with
> MagicPrefs and that was also OK.
>
>> Another thing I notice is that I can no longer get a RISC OS menu up (I
>> used to use the two-finger tap on the touchpad for this).
>
> Direct Menu and Adjust clicks are a casualty. The work around is alt-Select
> for Menu and ctrl-Select for Adjust. I don't have a track pad here to see
> how that would go.
>
> HTH.
> --
> David Pitt
>
> _______________________________________________
> Rpcemu mailing list
> Rpcemu@riscos.info
> http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Re: [Rpcemu] RPC Emu 0.8.14 on OS X High Sierra
> I recently upgraded my Mac to High Sierra and for some reason, whether it
> did this during the upgrade, or something else happened, but the settings
> for my RPCEmu install got changed. I noticed that the mouse pointer was
> laggy - turns out that 'Reduce CPU usage' had been ticked.
I am now on Mojave and I don't see that here on my iMac, nor did I
previously on High Sierra, the mouse pointer is fine with 'Reduce CPU
usage'. It is however a real mouse. Previously I used a Magic Mouse with
MagicPrefs and that was also OK.
> Another thing I notice is that I can no longer get a RISC OS menu up (I
> used to use the two-finger tap on the touchpad for this).
Direct Menu and Adjust clicks are a casualty. The work around is alt-Select
for Menu and ctrl-Select for Adjust. I don't have a track pad here to see
how that would go.
HTH.
--
David Pitt
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
[Rpcemu] RPC Emu 0.8.14 on OS X High Sierra
I recently upgraded my Mac to High Sierra and for some reason, whether it did this during the upgrade, or something else happened, but the settings for my RPCEmu install got changed. I noticed that the mouse pointer was laggy - turns out that 'Reduce CPU usage' had been ticked. Another thing I notice is that I can no longer get a RISC OS menu up (I used to use the two-finger tap on the touchpad for this).
I have tried deselecting 'Grab all Hot-keys' (not sure what this does, to be honest) and 'Two button mode', resetting RPCEmu each time, but these make no difference.
A three button tap looks like it is just the same as a single button tap (would this be the equivalent of Adjust click?)
Also, and this is a separate issue to that above as this has always been like this, why do I have to actually click the track pad on RPCEmu when every other application on my Mac is just a tap (I've configured it this way to save wear and tear on the track pad)?
It has RISC OS 5.24 installed, but not sure what date as I can't get the menu up to see! ;-)
Cheers,
Gerald.
From the MacBook Air of Gerald Holdsworth
www.geraldholdsworth.co.uk
www.reptonresourcepage.co.uk
_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Tuesday, 2 October 2018
Libparseutils - Contributed CMakeLists.txt file update
project (libparserutils)
include(FindPerl)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
enable_testing()
include( CTest )
#Obligitory version and copyright for pkg-config file and version info
#as well as possibly, automated installers.
set(PARSEUTILS_COMPONENT_NAME "parserutils")
set(PARSEUTILS_AUTHOR "John-Mark Bell <jmb@netsurf-browser.org>")
set(PARSEUTILS_COPYRIGHT "Copyright 2009-2015 John-Mark Bell <jmb@netsurf-browser.org>")
set(PARSEUTILS_DESCRIPTION "Utility library for facilitating parser development")
set(PARSEUTILS_VERSION_MAJOR 0)
set(PARSEUTILS_VERSION_MINOR 2)
set(PARSEUTILS_VERSION_PATCH 4)
set(PARSEUTILS_SOVERSION ${PARSEUTILS_VERSION_MAJOR}.${PARSEUTILS_VERSION_MINOR}.${PARSEUTILS_VERSION_PATCH})
#Do not prefix BUILD_SHARED_LIBS and BUILD_STATIC_LIBS because those are standard cmake options
#We only put them in the menu for convenience.
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(BUILD_STATIC_LIBS "Build static libraries" ON)
option(PARSEUTILS_WITH_ICONV "Build with iconv" ON)
option(PARSEUTILS_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON)
option(PARSEUTILS_BUILD_DOCS "Build Docs with Doxygen" OFF)
# setup any additional libs required by this.
set(PARSEUTILS_ADDITIONAL_LIBS "")
set(PARSEUTILS_ADDITIONAL_DIRS "")
set(PARSEUTILS_ADDITIONAL_DEFS "_BSD_SOURCE" "-D_DEFAULT_SOURCE")
set(LIBPARSEUTILS_PC_REQ "")
if(PARSEUTILS_WITH_ICONV)
# FindIconv module was introduced in CMake 3.11
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.10)
include(FindIconv)
list(APPEND PARSEUTILS_ADDITIONAL_DIRS ${Iconv_INCLUDE_DIRS})
list(APPEND PARSEUTILS_ADDITIONAL_LIBS ${Iconv_LIBRARIES})
else()
# Barrow part of https://github.com/Kitware/CMake/blob/master/Modules/FindIconv.cmake
# for our fallback.
# iconv can only be provided in libc on a POSIX system.
# If any cache variable is already set, we'll skip this test.
if(NOT DEFINED Iconv_IS_BUILT_IN)
if(UNIX AND NOT DEFINED Iconv_INCLUDE_DIR AND NOT DEFINED Iconv_LIBRARY)
cmake_push_check_state(RESET)
# We always suppress the message here: Otherwise on supported systems
# not having iconv in their C library (e.g. those using libiconv)
# would always display a confusing "Looking for iconv - not found" message
set(CMAKE_FIND_QUIETLY TRUE)
# The following code will not work, but it's sufficient to see if it compiles.
# Note: libiconv will define the iconv functions as macros, so CheckSymbolExists
# will not yield correct results.
set(Iconv_IMPLICIT_TEST_CODE
"
#include <stddef.h>
#include <iconv.h>
int main() {
char *a, *b;
size_t i, j;
iconv_t ic;
ic = iconv_open(\"to\", \"from\");
iconv(ic, &a, &i, &b, &j);
iconv_close(ic);
}
"
)
if(CMAKE_C_COMPILER_LOADED)
check_c_source_compiles("${Iconv_IMPLICIT_TEST_CODE}" Iconv_IS_BUILT_IN)
else()
check_cxx_source_compiles("${Iconv_IMPLICIT_TEST_CODE}" Iconv_IS_BUILT_IN)
endif()
cmake_pop_check_state()
else()
set(Iconv_IS_BUILT_IN FALSE)
endif()
endif()
if(NOT Iconv_IS_BUILT_IN)
include(FindPkgConfig)
if(PKG_CONFIG_FOUND)
pkg_check_modules(iconv Iconv)
list(APPEND HUBBUB_ADDITIONAL_DIRS ${Iconv_INCLUDEDIR})
list(APPEND HUBBUB_ADDITIONAL_LIBS ${Iconv_LIBRARIES})
else()
find_library(iconv PARSEUTILS_ICONV_LIB)
if (iconv_LIB)
list(APPEND HUBBUB_ADDITIONAL_LIBS ${PARSEUTILS_ICONV_LIB})
set(Iconv_FOUND TRUE)
endif(iconv_LIB)
endif(PKG_CONFIG_FOUND)
else()
set(Iconv_FOUND TRUE)
endif(NOT Iconv_IS_BUILT_IN)
endif()
endif(PARSEUTILS_WITH_ICONV)
if(NOT Iconv_FOUND)
list(APPEND PARSEUTILS_ADDITIONAL_DEFS "WITHOUT_ICONV_FILTER")
else()
if(NOT Iconv_IS_BUILT_IN)
list(APPEND LIBPARSEUTILS_PC_REQ "iconv")
endif(NOT Iconv_IS_BUILT_IN)
endif(NOT Iconv_FOUND)
if(NOT PERL_FOUND)
message(FATAL_ERROR "Perl is required")
endif()
set(PARSEUTILS_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(PARSEUTILS_ADDITIONAL_C_FILES
${CMAKE_SOURCE_DIR}/src/charset/aliases.h
${CMAKE_SOURCE_DIR}/src/charset/aliases.c
${CMAKE_SOURCE_DIR}/src/charset/codec.c
${CMAKE_SOURCE_DIR}/src/charset/codecs/codec_impl.h
${CMAKE_SOURCE_DIR}/src/charset/codecs/codec_ascii.c
${CMAKE_SOURCE_DIR}/src/charset/codecs/codec_8859.c
${CMAKE_SOURCE_DIR}/src/charset/codecs/codec_ext8.c
${CMAKE_SOURCE_DIR}/src/charset/codecs/codec_utf8.c
${CMAKE_SOURCE_DIR}/src/charset/codecs/codec_utf16.c
${CMAKE_SOURCE_DIR}/src/charset/encodings/utf8.c
${CMAKE_SOURCE_DIR}/src/charset/encodings/utf16.c
${CMAKE_SOURCE_DIR}/src/input/filter.c
${CMAKE_SOURCE_DIR}/src/input/inputstream.c
${CMAKE_SOURCE_DIR}/src/utils/buffer.c
${CMAKE_SOURCE_DIR}/src/utils/errors.c
${CMAKE_SOURCE_DIR}/src/utils/stack.c
${CMAKE_SOURCE_DIR}/src/utils/vector.c
)
set(PARSEUTILS_PUBLIC_HEADER_FILES
include/parserutils/errors.h
include/parserutils/functypes.h
include/parserutils/parserutils.h
include/parserutils/types.h
include/parserutils/charset/codec.h
include/parserutils/charset/mibenum.h
include/parserutils/charset/utf16.h
include/parserutils/charset/utf8.h
include/parserutils/input/inputstream.h
include/parserutils/utils/buffer.h
include/parserutils/utils/stack.h
include/parserutils/utils/vector.h)
if(CMAKE_COMPILER_IS_GNUCC)
set(PARSEUTILS_WARNFLAGS -Wall -W -Wundef -Wpointer-arith -Wcast-align
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-declarations -Wnested-externs -pedantic)
endif(CMAKE_COMPILER_IS_GNUCC)
# From: https://gitlab.kitware.com/cmake/community/wikis/contrib/macros/TestInline
# Inspired from /usr/share/autoconf/autoconf/c.m4
# I put it here to replace the GCCISM inline="__inline__"
set(TEST_C "/* Test source lifted from /usr/share/autoconf/autoconf/c.m4 */
typedef int foo_t;
static inline foo_t static_foo(){return 0;}
foo_t foo(){return 0;}
int main(int argc, char *argv[]){return 0;}")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_inline.c "${TEST_C}")
FOREACH(KEYWORD "inline" "__inline__" "__inline")
IF(NOT DEFINED C_INLINE)
TRY_COMPILE(C_HAS_${KEYWORD} "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/test_inline.c"
COMPILE_DEFINITIONS "-Dinline=${KEYWORD}")
IF(C_HAS_${KEYWORD})
SET(C_INLINE TRUE)
ADD_DEFINITIONS("-Dinline=${KEYWORD}")
ENDIF(C_HAS_${KEYWORD})
ENDIF(NOT DEFINED C_INLINE)
ENDFOREACH(KEYWORD)
IF(NOT DEFINED C_INLINE)
ADD_DEFINITIONS("-Dinline=")
ENDIF(NOT DEFINED C_INLINE)
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/test_inline.c)
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${PERL_EXECUTABLE} ${CMAKE_SOURCE_DIR}/build/make-aliases.pl ${CMAKE_SOURCE_DIR}/build/Aliases)
include_directories(${CMAKE_SOURCE_DIR}/src)
if(BUILD_SHARED_LIBS)
if(CMAKE_RC_COMPILER)
# Make .rc file
set(PARSEUTILS_RC_CONTENTS "1 VERSIONINFO
FILEVERSION ${PARSEUTILS_VERSION_MAJOR},${PARSEUTILS_VERSION_MINOR},${PARSEUTILS_VERSION_PATCH},0
PRODUCTVERSION ${PARSEUTILS_VERSION_MAJOR},${PARSEUTILS_VERSION_MINOR},${PARSEUTILS_VERSION_PATCH},0
BEGIN
BLOCK \"StringFileInfo\"
BEGIN
BLOCK \"040904E4\"
BEGIN
VALUE \"CompanyName\", \"${PARSEUTILS_AUTHOR}\"
VALUE \"FileDescription\", \"${PARSEUTILS_DESCRIPTION}\"
VALUE \"FileVersion\", \"${PARSEUTILS_VERSION_MAJOR}.${PARSEUTILS_VERSION_MINOR}.${PARSEUTILS_VERSION_PATCH}\"
VALUE \"InternalName\", \"${CMAKE_SHARED_MODULE_PREFIX}${PARSEUTILS_COMPONENT_NAME}\"
VALUE \"LegalCopyright\", \"${PARSEUTILS_COPYRIGHT}\"
VALUE \"OriginalFilename\", \"${CMAKE_SHARED_MODULE_PREFIX}${PARSEUTILS_COMPONENT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}\"
VALUE \"ProductName\", \"${PARSEUTILS_COMPONENT_NAME}\"
VALUE \"ProductVersion\", \"${PARSEUTILS_VERSION_MAJOR}.${PARSEUTILS_VERSION_MINOR}.${PARSEUTILS_VERSION_PATCH}\"
END
END
BLOCK \"VarFileInfo\"
BEGIN
VALUE \"Translation\", 0x409, 1252
END
END")
FILE(WRITE ${PARSEUTILS_BUILD_DIR}/lib${PARSEUTILS_COMPONENT_NAME}.rc "${PARSEUTILS_RC_CONTENTS}")
add_library(libparserutils_shared SHARED ${PARSEUTILS_ADDITIONAL_C_FILES} ${PARSEUTILS_PUBLIC_HEADER_FILES} lib${PARSEUTILS_COMPONENT_NAME}.rc)
else()
add_library(libparserutils_shared SHARED ${PARSEUTILS_ADDITIONAL_C_FILES} ${PARSEUTILS_PUBLIC_HEADER_FILES} SOVERSION ${PARSEUTILS_SOVERSION})
endif()
target_include_directories(libparserutils_shared PUBLIC ${CMAKE_SOURCE_DIR}/include)
if(CMAKE_COMPILER_IS_GNUCC)
target_compile_options(libparserutils_shared PUBLIC ${PARSEUTILS_WARNFLAGS})
endif(CMAKE_COMPILER_IS_GNUCC)
set_target_properties(libparserutils_shared PROPERTIES OUTPUT_NAME ${PARSEUTILS_COMPONENT_NAME})
if(PARSEUTILS_ADDITIONAL_LIBS)
target_link_libraries(libparserutils_shared PUBLIC ${PARSEUTILS_ADDITIONAL_LIBS})
endif(PARSEUTILS_ADDITIONAL_LIBS)
if(PARSEUTILS_ADDITIONAL_DIRS)
target_include_directories(libparserutils_shared PUBLIC ${PARSEUTILS_ADDITIONAL_DIRS})
endif(PARSEUTILS_ADDITIONAL_DIRS)
if(PARSEUTILS_ADDITIONAL_DEFS)
target_compile_definitions(libparserutils_shared PRIVATE ${PARSEUTILS_ADDITIONAL_DEFS})
endif(PARSEUTILS_ADDITIONAL_DEFS)
install(TARGETS libparserutils_shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
add_library(libparserutils_static STATIC ${PARSEUTILS_ADDITIONAL_C_FILES} ${PARSEUTILS_PUBLIC_HEADER_FILES})
set_target_properties(libparserutils_static PROPERTIES OUTPUT_NAME ${PARSEUTILS_COMPONENT_NAME})
target_include_directories(libparserutils_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
if(PARSEUTILS_ADDITIONAL_LIBS)
target_link_libraries(libparserutils_static PUBLIC ${PARSEUTILS_ADDITIONAL_LIBS})
endif(PARSEUTILS_ADDITIONAL_LIBS)
if(PARSEUTILS_ADDITIONAL_DIRS)
target_include_directories(libparserutils_static PUBLIC ${PARSEUTILS_ADDITIONAL_DIRS})
endif(PARSEUTILS_ADDITIONAL_DIRS)
if(PARSEUTILS_ADDITIONAL_DEFS)
target_compile_definitions(libparserutils_static PRIVATE ${PARSEUTILS_ADDITIONAL_DEFS})
endif(PARSEUTILS_ADDITIONAL_DEFS)
if(CMAKE_COMPILER_IS_GNUCC)
target_compile_options(libparserutils_static PRIVATE ${PARSEUTILS_WARNFLAGS})
endif(CMAKE_COMPILER_IS_GNUCC)
install(TARGETS libparserutils_static
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif(BUILD_STATIC_LIBS)
if(PARSEUTILS_BUILD_DOCS)
include( FindDoxygen )
if(DOXYGEN_FOUND)
# Ideally, the documentation generated by Doxygen should be built
# inside the BUILD directories and installed from there. But
# the libparserutils developers had hard-coded relative paths to
# the source-directory in their Doxyfile causing Doxygen to fail
# in building is done from outside the source-code tree.
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build/docs)
add_custom_target( doc_doxygen ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/build/Doxyfile
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM )
install(DIRECTORY ${CMAKE_SOURCE_DIR}/build/docs/html DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR})
endif(DOXYGEN_FOUND)
endif(PARSEUTILS_BUILD_DOCS)
#from: https://cmake.org/pipermail/cmake/2010-October/040246.html
#This installs the headers into our hierarchy in the include file.
foreach(PARSEUTILS_HEADER ${PARSEUTILS_PUBLIC_HEADER_FILES})
string(REGEX MATCH "(.*)[/\\]" PARSEUTILS_DIR ${PARSEUTILS_HEADER})
install(FILES ${PARSEUTILS_HEADER} DESTINATION ${PARSEUTILS_DIR})
endforeach(PARSEUTILS_HEADER ${PARSEUTILS_PUBLIC_HEADER_FILES})
if(PARSEUTILS_WITH_PKGCONFIG_SUPPORT)
set(PARSEUTILS_PC ${PARSEUTILS_BUILD_DIR}/libparserutils.pc)
# This stuff is necessary to ensure that the dependency list
# in our .pc file is in the proper format
#Make pkg-config
set(PARSEUTILS_PC_EXC "${CMAKE_INSTALL_PREFIX}")
set(PARSEUTILS_PC_INC "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
set(PARSEUTILS_PC_LIB "${CMAKE_INSTALL_FULL_LIBDIR}")
if("${PARSEUTILS_PC_EXC}" STREQUAL "${CMAKE_INSTALL_PREFIX}")
set(PARSEUTILS_PC_EXC "\${prefix}")
endif()
if ("${PARSEUTILS_PC_INC}" STREQUAL "${CMAKE_INSTALL_PREFIX}/include")
set(PARSEUTILS_PC_INC "\${prefix}/include")
endif()
if ("${PARSEUTILS_PC_LIB}" STREQUAL "${CMAKE_INSTALL_PREFIX}/lib")
set(PARSEUTILS_PC_LIB "\${exec_prefix}/lib")
endif()
set(PARSEUTILS_PKGCONF_PARSEUTILS_DEPS "")
foreach(PARSEUTILS_LIB_DEP ${PARSEUTILS_ADDITIONAL_LIBS})
set(PARSEUTILS_PKGCONF_PARSEUTILS_DEPS "${PARSEUTILS_PKGCONF_PARSEUTILS_DEPS} -l${PARSEUTILS_LIB_DEP}")
endforeach(PARSEUTILS_LIB_DEP)
string(REPLACE ";" ", " LIBPARSEUTILS_PC_REQ "${LIBPARSEUTILS_PC_REQ}")
set(PARSEUTILS_PKGCONFIG_CONTENTS "prefix=${CMAKE_INSTALL_PREFIX}
exec_prefix=${PARSEUTILS_PC_EXC}
libdir=${PARSEUTILS_PC_LIB}
includedir=${PARSEUTILS_PC_INC}
Name: lib${PARSEUTILS_COMPONENT_NAME}
Description: ${PARSEUTILS_DESCRIPTION}
URL: http://www.netsurf-browser.org/projects/lib${COMPONENT_NAME}/
Version: ${PARSEUTILS_SOVERSION}
")
if(LIBPARSEUTILS_PC_REQ)
set(PARSEUTILS_PKGCONFIG_CONTENTS "${PARSEUTILS_PKGCONFIG_CONTENTS}" "Requires: ${LIBPARSEUTILS_PC_REQ}
")
endif(LIBPARSEUTILS_PC_REQ)
set(PARSEUTILS_PKGCONFIG_CONTENTS ${PARSEUTILS_PKGCONFIG_CONTENTS} "Cflags: -I\${includedir}
Libs: -L\${libdir} -l${PARSEUTILS_COMPONENT_NAME}
Libs.private: ${PARSEUTILS_PKGCONF_PARSEUTILS_DEPS}
")
file(WRITE ${PARSEUTILS_PC} ${PARSEUTILS_PKGCONFIG_CONTENTS})
install(FILES ${PARSEUTILS_PC} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif(PARSEUTILS_WITH_PKGCONFIG_SUPPORT)
# Test stuff
if(BUILD_TESTING)
if(BUILD_SHARED_LIBS)
add_executable(aliases_shared ${CMAKE_SOURCE_DIR}/test/aliases.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(aliases_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(aliases_shared libparserutils_shared)
add_test(NAME Encoding_alias_handling_shared COMMAND aliases_shared)
add_executable(cscodec-utf8_shared ${CMAKE_SOURCE_DIR}/test/cscodec-utf8.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-utf8_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(cscodec-utf8_shared libparserutils_shared)
add_test(NAME UTF-8_charset_codec_implementation_shared__Simple_tests,_designed_to_validate_testdriver
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-utf8
COMMAND cscodec-utf8_shared simple.dat)
add_test(NAME UTF-8_charset_codec_implementation_shared__Markus_Kuhn's_UTF-8_decoding_test_file
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-utf8
COMMAND cscodec-utf8_shared UTF-8-test.txt)
add_executable(cscodec-utf16_shared ${CMAKE_SOURCE_DIR}/test/cscodec-utf16.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-utf16_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
#In Windows, you MUST link with Ws2_32 for htonl and ntoll
if(WIN32)
target_link_libraries(cscodec-utf16_shared libparserutils_static Ws2_32)
else(WIN32)
target_link_libraries(cscodec-utf16_shared libparserutils_static)
endif(WIN32)
add_test(NAME UTF-16_charset_codec_implementation_shared__Simple_tests,_designed_to_validate_testdriver
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-utf16
COMMAND cscodec-utf16_shared simple.dat)
add_executable(cscodec-ext8_shared ${CMAKE_SOURCE_DIR}/test/cscodec-ext8.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-ext8_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(cscodec-ext8_shared libparserutils_shared)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1250
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1250.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1251
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1251.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1252
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1252.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1253
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1253.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1254
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1254.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1255
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1255.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1256
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1256.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1257
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1257.dat)
add_test(NAME Extended_8bit_charset_codec_shared__Windows-1258
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_shared cp1258.dat)
add_executable(cscodec-8859_shared ${CMAKE_SOURCE_DIR}/test/cscodec-8859.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-8859_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(cscodec-8859_shared libparserutils_shared)
add_test(NAME ISO-8859-n-_shared__ISO-8859-1
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 1.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-2
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 2.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-3
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 3.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-4
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 4.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-5
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 5.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-6
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 6.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-7
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 7.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-8
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 8.dat)
add_test(NAME ISO-8859-n-_shared__ISO-8859-9
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_shared 9.dat)
add_executable(filter_shared ${CMAKE_SOURCE_DIR}/test/filter.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(filter_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(filter_shared libparserutils_shared)
add_test(NAME Input_stream_filtering_shared COMMAND filter_shared)
add_executable(inputstream_shared ${CMAKE_SOURCE_DIR}/test/inputstream.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(inputstream_shared PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(inputstream_shared libparserutils_shared)
add_test(NAME Inputstream_handling_shared__Markus_Kuhn's_UTF-8_decoding_test_file
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/input
COMMAND inputstream_shared UTF-8-test.txt)
endif(BUILD_SHARED_LIBS)
if(BUILD_STATIC_LIBS)
add_executable(aliases_static ${CMAKE_SOURCE_DIR}/test/aliases.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(aliases_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(aliases_static libparserutils_static)
add_test(NAME Encoding_alias_handling_aliases_static COMMAND aliases_static)
add_executable(cscodec-utf8_static ${CMAKE_SOURCE_DIR}/test/cscodec-utf8.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-utf8_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(cscodec-utf8_static libparserutils_static Ws2_32)
add_test(NAME UTF-8_charset_codec_implementation_static_Simple_tests,_designed_to_validate_testdriver
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-utf8
COMMAND cscodec-utf8_static simple.dat )
add_test(NAME UTF-8_charset_codec_implementation_static__Markus_Kuhn's_UTF-8_decoding_test_file
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-utf8
COMMAND cscodec-utf8_static UTF-8-test.txt)
add_executable(cscodec-utf16_static ${CMAKE_SOURCE_DIR}/test/cscodec-utf16.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-utf16_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
#In Windows, you MUST link with Ws2_32 for htonl and ntoll
if(WIN32)
target_link_libraries(cscodec-utf16_static libparserutils_static Ws2_32)
else(WIN32)
target_link_libraries(cscodec-utf16_static libparserutils_static)
endif(WIN32)
add_test(NAME UTF-16_charset_codec_implementation_static__Simple_tests,_designed_to_validate_testdriver
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-utf16
COMMAND cscodec-utf16_static simple.dat)
add_executable(cscodec-ext8_static ${CMAKE_SOURCE_DIR}/test/cscodec-ext8.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-ext8_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(cscodec-ext8_static libparserutils_static)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1250
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1250.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1251
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1251.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1252
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1252.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1253
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1253.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1254
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1254.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1255
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1255.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1256
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1256.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1257
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1257.dat)
add_test(NAME Extended_8bit_charset_codec_static__Windows-1258
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-ext8
COMMAND cscodec-ext8_static cp1258.dat)
add_executable(cscodec-8859_static ${CMAKE_SOURCE_DIR}/test/cscodec-8859.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(cscodec-8859_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(cscodec-8859_static libparserutils_static)
add_test(NAME ISO-8859-n-_static__ISO-8859-1
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 1.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-2
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 2.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-3
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 3.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-4
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 4.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-5
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 5.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-6
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 6.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-7
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 7.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-8
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 8.dat)
add_test(NAME ISO-8859-n-_static__ISO-8859-9
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/cscodec-8859
COMMAND cscodec-8859_static 9.dat)
add_executable(filter_static ${CMAKE_SOURCE_DIR}/test/filter.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(filter_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(filter_static libparserutils_static)
add_test(NAME Input_stream_filtering_static COMMAND filter_static)
add_executable(inputstream_static ${CMAKE_SOURCE_DIR}/test/inputstream.c ${CMAKE_SOURCE_DIR}/test/testutils.h)
target_include_directories(inputstream_static PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(inputstream_static libparserutils_static)
add_test(NAME Inputstream_handling_static__Markus_Kuhn's_UTF-8_decoding_test_file
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/input
COMMAND inputstream_static UTF-8-test.txt)
endif(BUILD_STATIC_LIBS)
endif(BUILD_TESTING)
Hell, everyone.
Just to let everyone know, I am porting some stuff to Windows from Linux. I use the MSYS2 enviornment to make mingw-w64 packages and there is quite a lot of software ported. I have done some work on some netsurf libraries to this. This includes making .DLL’s or shared libraries for Windows.
To do this, I’ve been using Cmake and I’ve had some success that I want to share with everyone here This is stuff I willing contribute in to this project in order to help get netsurf stuff available for Windows, Win32, and possibly something like CygWin or even MSYS2.
The Cmake build system should also work on OS/X which I don’t have as well as some other things. It might even be possible to use Cmake to cross compile to things like Android.
To start off with, here is an updated version of the CMakeLists.txt file I wrote for LibParseUtils. An older version is available at ( https://bugs.netsurf-browser.org/mantis/view.php?id=2621 ) You would place this in the root directory.
Hopefully, the CMakeLists.txt file in this message is received.
Some notes about this version. This one does change the pkg-config file generated to require iconv in some cases where it’s not part of the system. Test .EXE’s are build ONLY if testing is enabled.
I do want to encourage you to include this CMakeLists.txt in your distribution. I am pleased to report that The tests complete at 100% including the iconv and non-iconv versions. IN addition, I also was able to make a fallback for earlier cmake versions to use iconv.
IIconv is rather a special dependency because in Linux, the iconv functions are located in the RTL. In windows, this is not the case but there are implementations of it so when building such such acases, the pkg-config file has to list. As a requirement.