SharpFont icon indicating copy to clipboard operation
SharpFont copied to clipboard

Do you really mean to build for/depend on/require PCL/iOS by default?

Open HinTak opened this issue 9 years ago • 6 comments

Am surprised that 'make' at the top level broke. How comes it build for,depend on,require PCL/iOS by default now?

HinTak avatar Jul 06 '16 07:07 HinTak

The makefile in the root dir hasn't been updated in a very long time now, guessing this broke when #80 was merged in.

The Makefile itself is just changing arguments to xbuild for Source/SharpFont.sln, which by default builds all the included projects (iOS, Android, etc.). I'm not a makefile expert, but I'd imagine to support the new targets, you'd either have to directly build the csproj files or mess with xbuild more. Definitely open to a pull request supporting this, won't have the time to do it myself though.

Robmaister avatar Jul 06 '16 15:07 Robmaister

Yes, I guess https://github.com/Robmaister/SharpFont/pull/80 broke it. That's a bit of a special set up - assuming one wants to, and have all the optional bits - to build all the different SharpFont build for a broad range of platforms. I'd rather the "default" does not fail (i.e. skip over targets which the current setup is not equiped to build), or fail with some more sensible messages.

BTW, fedora ships mono 4.x with the policy of not shipping binary bits, which means mono on fedora cannot build for the older 2.x/3.x framework, etc, let alone PCL and iOS. (I have a slightly customized fedora install to revert their removal of 2.x/3.x framework capability). The last time I checked SharpFont targets the older framework?

HinTak avatar Jul 06 '16 21:07 HinTak

I was able to find the "sub-project" csproj to build that alone, but I wish not to do that. Also, it isn't too attractive to new devs when the top level make fails :-).

HinTak avatar Jul 06 '16 21:07 HinTak

I believe with the new platforms came a move to .NET 4.0 or 4.5 (UWP also requires a newer version of .NET I think)

I haven't had much time to devote to maintaining SharpFont, and I no longer have any Linux partitions on my machines. I'd most likely have to download an ISO and spin up a VM to test this stuff out and make the changes I need.

Would be easie/quicker for someone who already has Linux and the whole environment set up to do it.

Robmaister avatar Jul 06 '16 22:07 Robmaister

I could write a build system using FAKE? I'm more familiar with it than MAKE and I'd be happy to write the integration for it.

It would add the following files to the project:

  • build.cmd - build script launcher for Windows, example here
  • build.sh - build script launcher for Linux/OSX and Cygwin, example here
  • build.fsx - actual build script written in F#, example here
  • .paket/paket.bootstrapper.exe - Paket is used to pull in FAKE libraries. Could also use nuget.exe here.

Some example use cases are:

  • > ./build.{cmd|sh} - Run the default target (usually Build)
  • > ./build.{cmd|sh} Build mode=Release - Run the target called Build with parameter mode = Release

The regular way of building using Visual Studio and the solution file would remain unchanged.

This approach would add some extra files to the project root directory however, so I understand if you'd rather not clutter it up. Let me know if you think it's a good idea.

opcon avatar Jul 14 '16 01:07 opcon

Hey all, I think it would be best to just fix up the top-level makefile to build the regular SharpFont only by default, with different targets for iOS, PCL, and all. I want to keep the build system as simple as possible. Make is essentially universal on Linux, sln/csproj the same for C# projects.

Robmaister avatar Dec 07 '16 19:12 Robmaister