FLTK logo

Re: [fltk.coredev] Understanding macOS build environments

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.coredev  ]
 
Previous Message ]New Message | Reply ]Next Message ]

Re: Understanding macOS build environments Greg Ercolano Mar 03, 2021  
 
Q: Which "package management" tool(s) did you install and which tool(s) are you actually using?
A: Homebrew
        Yeah, brew for me quite a few times. Fink maybe once years ago?

        I generally try to avoid installing any package managers on Mac OSX, OSX, macOS (lol, pick a name, Apple)
        just because it can bring in all kinds of stuff that messes around with environment variables that can affect
        Q/C testing for my commercial apps, and tries to stick things in weird places.



Q: How are you mainly building FLTK? Options are configure/make or CMake. If CMake, please add your "Generator" as well, like "Unix Makefiles", "Ninja", "Xcode", ...
A: autoconf + CMake/Ninja + CMake/Xcode (I did not yet try CMake/"Unix Makefiles").

    I've always used 'configure', and now sometimes 'cmake'.


Q: If you are using autoconf/configure, how did you install 'autoconf'?
A: Homebrew (brew install autoconf)

    Hmm, I don't remember having to do special stuff for autoconf.
    I think installing Xcode and/or Xcode tools or some such pulled all that in.

    I never use Xcode myself, but the package brings in all the command line stuff, IIRC.

    You can also JUST install the command line tools.. I think I've done that from time to time.
    But usually I just install "Xcode".

    Others will probably have better info.

Q: If you are using Homebrew, what is your Homebrew install directory?
A: /opt/homebrew

    Ya, that's why I don't like homebrew; creating directories in root just seems wrong,
    and I think in recent OS versions (Big Sur, Catalina), it's seriously frowned apon by the OS
    and actively prevented by having the root system mounted read only.

    No longer can you be root and use 'mkdir' in the root directory. Even in safe mode, creating
    entries in the root directory on the OS volume magically disappear on reboot. To pull it off
    in Big Sur, you have to mess around with some hacky thing called /etc/synthetic.conf,
    or whatever it's called, and it will create a directory or some new magic symbolic links,
    and recommend you put stuff you'd normally put in root in a new directory called /System/Volume/Data
    or some such appley crazy thing that has nothing to do with the unix world. Don't get me started 😠


FYI: Homebrew installs its packages on new "arm64" Macs to /opt/homebrew and places symbolic links in /usr/local whereas it installs to /usr/local on Intel Macs.

Q: Do you have pkg-config installed; if yes: by which package manager or self-built or ...?
A: yes, Homebrew

    I don't build a lot of other libs, so I don't know this one really.
Q: How are you building/using the bundled libs (jpeg, png, zlib), i.e. system or bundled (aka "local") versions?
A: all three either system (WIP) or bundled, i.e. all combinations of system and/or bundled libs work with either configure/make or CMake/Ninja (see below for "WIP").

    I always use the ones that come with FLTK.


Note: I like Ninja (brew install ninja). It's much faster than "Unix Makefiles" particularly if only a few files were changed.

    'make -j 4' works so well, I've never needed anything faster myself.

    But I'm slow to replace old tools cause I hate learning new stuff..
    I need less things that get in the way of daily maintenance.

Q: What build environments do you use, particularly do you use Xcode to edit/build/test/debug (FLTK) and your FLTK application code?
A: VS Code (Visual Studio Code) is now my preferred editor and build/test environment.

    I'm a pure VI/make guy, and only use VS when I have to.
    I never use Xcode, except once I think to figure out how to help someone on the FLTK forum to do something in Xcode.

    I leave my windows machines off as much as possible.


I'm using VS Code on Linux and macOS for editing and debugging. There are currently some limits on M1 (arm64) Macs: debugging with VS Code works only for x86_64 builds (using Rosetta which makes it somewhat slower), not for native arm64 but I'm confident this will be resolved soon (there are open GitHub Issues). Meanwhile I can build x86_64 target code for debugging with VS Code or I can use Xcode to debug arm64 code. Universal binaries (arm64 + x86_64) build but not yet tested with debugger (lldb).


Q: What else should I know about the build environments on your Macs WRT building FLTK? Which extra build options work, which ones don't?
A1: I installed Cairo (brew install cairo) and I can now build the Cairo demo - either with configure/make or CMake (after a recent commit).

    I generally find I have to do very little when setting up new macs to build FLTK other than installing Xcode.
    Maybe I'm forgetting something. I think I've had to build git from source a few times, but I think it "comes with" these days.

--
You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/64ef5754-39d3-bfdc-3a54-e4419148ca3f%40seriss.com.
Direct Link to Message ]
 
     
Previous Message ]New Message | Reply ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.