Commit Graph

82 Commits

Author SHA1 Message Date
Albrecht Schlosser
693a420102 CMake/macOS: Fix and improve bundle generation
Update copyright, fix some bundle items, fix icon directory.
2021-05-04 19:22:18 +02:00
Albrecht Schlosser
15aff3718e Refactor macOS bundle generation to avoid "quarantine"
macOS Big Sur 11.3 introduced a new "security feature" such that
app bundles created from existing bundle templates in downloaded
files (tar distibutions, expanded) could no longer be executed
without unsetting the "quarantine" attribute. This commit fixes
this by creating all bundles from scratch.

Known *workaround* for older tarballs and snapshots:

  $ xattr -d -r com.apple.quarantine xxx.app
2021-05-03 16:11:05 +02:00
Albrecht Schlosser
d80a1cd653 CMake: fix old (pre 3.13) link_directories() usage 2021-04-30 19:57:27 +02:00
Albrecht Schlosser
b18c1d00ad Fix build with Cairo for CMake < 3.13
target_link_directories() was introduced in CMake 3.13
2021-04-30 13:28:14 +02:00
Albrecht Schlosser
97bdc2da65 CMake: Document FLTKConfig.cmake and set FLTK_INCLUDE_DIR
Some of the output variables had not been documented, and the "new"
variable for FLTK include directories is 'FLTK_INCLUDE_DIRS' (plural)
rather than 'FLTK_INCLUDE_DIR'.

FLTK_INCLUDE_DIR is now also set for compatibility with FindFLTK.cmake
supplied by CMake.
2021-04-26 15:01:05 +02:00
Albrecht Schlosser
997ffe5a22 Fix CMake install procedure (#212)
Only install header files to the FL/ include directory.
2021-04-11 21:58:09 +02:00
Albrecht Schlosser
7191bf3efa Fix CMake warning 2021-04-08 16:23:46 +02:00
Albrecht Schlosser
52a853c39c Backport CMake and related stuff from 1.4 (master)
- update formatting + documentation generation
- rename help-test.html to help_dialog.html
- update CMake files + Makefiles + related source files
- update fluid files + dependencies
2021-04-08 14:57:40 +02:00
Albrecht Schlosser
02e4b8f980 Bump version numbers to 1.3.6 (prepare release part 1) 2021-02-04 14:58:30 +01:00
Albrecht Schlosser
1eaf87b245 Minor CMake, docs, and test program updates
Fix bug in CMake/posixScandir.cxx (backported from 1.4).

Fix table structure in test/help-test.html (backported from 1.4).

Clarify that the deprecated forms compatibility *may* be removed in
FLTK 1.4
2020-09-19 19:47:18 +02:00
Albrecht Schlosser
7a108b3723 Minor CMake updates (formatting)
Backported from master branch
2020-06-13 13:53:45 +02:00
ManoloFLTK
ef7e2410e3 CMake support of the Darwin+XQuartz test platform 2020-05-29 17:31:38 +02:00
ManoloFLTK
8b73735d65 Set OPTION_USE_SYSTEM_LIBPNG/JPEG off under macOS by default 2020-05-29 17:31:38 +02:00
Albrecht Schlosser
9a7c01a8aa Improve CMake's Cairo detection and issue error message...
... if Cairo was requested (OPTION_CAIRO or OPTION_CAIROEXT) but
Cairo was not found. CMake generation is terminated with a fatal error.

The user has two choices: install Cairo libs and headers or disable
OPTION_CAIRO and OPTION_CAIROEXT.

Note: back-ported (cherry-picked) from 1.4.0 (master): 88129db051
2018-12-20 20:52:32 +01:00
ManoloFLTK
0a98405424 macOS + CMake: restore building of GLU_based test apps. 2018-12-16 18:18:52 +01:00
ManoloFLTK
e870310d9a macOS + CMake build: restore use of OPTION_APPLE_X11 2018-12-16 17:41:38 +01:00
Albrecht Schlosser
aa216a46d4 CMake/Windows only: add missing #define WIN32 for all compilers.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@12613 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-12-28 23:22:43 +00:00
Albrecht Schlosser
08533b52b5 Bump version numbers to 1.3.5, prepare for release.
There are still files that need changes, but with this commit the
majority of files is up-to-date.

Files left to be updated later:

 - ANNOUNCEMENT         partly done, needs RELEASE DATE !
 - CHANGES              up-to-date (?), but needs RELEASE DATE !
 - KNOWN_BUGS.html      needs more work (snapshot)
 - maybe more           (unknown)


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@12336 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-18 18:32:47 +00:00
Albrecht Schlosser
ba56c33726 [CMake] Fix Windows dll build with Visual Studio generator.
Now you can set OPTION_BUILD_SHARED_LIBS:BOOL=ON to build FLTK dll's with
Visual Studio. Tested and works (Visual Studio 2010 + 2015).

Todo: dll names and target directories may need some changes.

Todo: Shared libraries under Linux with CMake don't work yet:
/usr/bin/ld: ../lib/libfltk.a(Fl.cxx.o): relocation R_X86_64_32S against
  `.bss' can not be used when making a shared object; recompile with -fPIC



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11865 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-08-08 12:25:08 +00:00
Manolo Gouy
9b9fc92768 Fix CMake building under Apple platform that used to set HAVE_GL_GLU_H to 0
On the Mac OS platform, file glu.h is not in a directory called GL.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11863 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-08-05 17:07:15 +00:00
Albrecht Schlosser
f41ef4e158 Clarification and better documentation of ABI version configuration.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11803 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-07-09 18:43:31 +00:00
Manolo Gouy
c4d004d5b3 THE best way to test for availability of dlsym().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11778 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-06-14 05:17:00 +00:00
Albrecht Schlosser
8d67e81b7d [CMake] Add missing end of file comment.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11776 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-06-13 22:29:17 +00:00
Albrecht Schlosser
ccd5f72035 [CMake] Fix restoration of CMAKE_REQUIRED_LIBRARIES.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11775 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-06-13 22:14:31 +00:00
Manolo Gouy
e2b6f1c7ec Fix cases where function dlsym() is not in library libdl
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11773 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-06-13 12:23:22 +00:00
Albrecht Schlosser
c092b92938 [CMake] Improve Mac OS X bundle generation and more (STR #3299).
Remove example specific tests from macro CREATE_EXAMPLE, add
function to set bundle icon, simplify some CMake setup code,
deprecate usage of UseFLTK.CMake.

Todo: Fix documentation.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11742 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-05-16 14:43:37 +00:00
Albrecht Schlosser
448e02574b [CMake] Remove redundant linking in CMake build process (STR #3298).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11442 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-27 16:56:23 +00:00
Albrecht Schlosser
16e1d9db41 [CMake] Fix library name (Debug mode), add fluid dependencies.
The library name in Debug mode must only be 'libname'd.a if the build
is with MSVC; all other builds never appended the 'd' suffix to the name.
This is also documented (see lib/README).

Fluid did not regenerate the .cxx and .h files if the .fl file was changed.
The DEPENDS keyword adds the necessary dependency.
The MAIN_DEPENDENCY keyword "also suggests to Visual Studio generators
where to hang the custom command" according to CMake docs.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11430 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-26 14:20:32 +00:00
Albrecht Schlosser
a3457f745c [CMake] Mark OPTION_USE_POLL as advanced.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11291 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-05 13:29:18 +00:00
Manolo Gouy
4592043ee2 Support of OPTION_APPLE_X11 by CMake: do not use hard-coded paths
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11126 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-03 10:28:57 +00:00
Manolo Gouy
551fd6b077 Support for OPTION_APPLE_X11 -- OpenGL libraries
OPTION_APPLE_X11 is a very special option, and the best
way to support it with CMake still requires expert advice.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11123 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-02 14:51:15 +00:00
Albrecht Schlosser
1139af35af [CMake] Work around CMake bug in CMake versions 3.4.x.
CMake versions 3.4.x crash when using fltk_wrap_ui, a built-in CMake
command. According to the CMake devs this will be fixed in CMake 3.5.

However, since fltk_wrap_ui is no longer necessary (it can replaced by
custom build commands) and some Linux distributions deploy CMake 3.4.x
we decided to use an own replacement function.

This makes sure that FLTK can be built with CMake 3.4.x, but FLTK users
may still have to rewrite their own CMake files to not use fltk_wrap_ui.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@11081 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-29 13:09:30 +00:00
Manolo Gouy
69ec698e41 Mac OS: modified CMake config files to allow use of OPTION_APPLE_X11
to build an X11-using version of FLTK on the Mac OS platform.
This matches the recent support of the --enable-x11 option
by the configure script on the mac.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10986 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-31 06:19:59 +00:00
Albrecht Schlosser
3beb45165a [CMake] config.h, part 2 - full compatibility with autoconf.
This commit makes the file config.h generated by CMake 100% compatible
with the one generated by autoconf/configure.

Fixes in this commit:
 - Set FLTK_DATADIR and FLTK_DOCDIR with the same default values.
   Note: needs some cleanup, option values are not clear, '/fltk'
   is currently appended in export.cmake (needs improvement).
 - Simulation of autoconf macro AC_HEADER_DIRENT for correct
   definition of only one 'dirent' header file.
 - Fix more function checks:
    - dlsym
    - png_get_valid
    - png_set_tRNS_to_alpha
 - Improve "Big Endian" check for __APPLE__ (mac_endianness.h).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10985 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 21:13:07 +00:00
Albrecht Schlosser
4f5e6e7732 Harmonize configure and CMake build system (part 1).
The files "config.h" generated by configure and CMake are now almost
identical, except a few comments and some still missing or failing
config tests, for instance checks for some functions in libraries.
[Note: tested and compared on Linux.]

configh.cmake.in: Fixed many #cmakedefine and #cmakedefine01 statements
  so they #define their variables as 0 or 1, or /* #undef */ it, resp.,
  as it is done in the configure build.

Added tests:
  - libXrender

Fixed tests:
  - function glXGetProcAddressARB

Todo (still failing tests in CMake):
  - HAVE_PNG_GET_VALID
  - HAVE_PNG_SET_TRNS_TO_ALPHA
  - HAVE_DLSYM

Other remaining issues:
  - compiler flags introduced in configure/make build
  - HAVE_SYS_NDIR_H - maybe missing test in configure ?
  - HAVE_SYS_DIR_H  - maybe missing test in configure ?
  - HAVE_NDIR_H     - maybe missing test in configure ?
  - WORDS_BIGENDIAN and #include <mac_endianness.h> ...
    i.e. Mac OS X specific #include needed or not ?



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10984 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 14:37:35 +00:00
Albrecht Schlosser
17c4817592 Add configure and CMake checks for X11/Xregion.h.
Configure and CMake now both check if X11/Xregion.h exists on the
build system and set HAVE_X11_XREGION_H in config.h accordingly.

src/Fl_Pixmap.cxx: modified to use the configure test as proposed by Manolo
in fltk.coredev on Dec 13 2015 in thread "Using X11 backend on OS X".


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10983 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 12:10:15 +00:00
Manolo Gouy
bb4f485708 Mac OS: add if(APPLE condition to Mac OS-specific target property.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10982 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-29 16:50:50 +00:00
Manolo Gouy
8ac33d6b71 Mac OS: Enhanced the application bundle for the editor demo
so it is launchable by dropping any file on its icon. This is
done both for the configure/make and the CMake build systems
(the Xcode build system did that already).
The editor demo is the only one calling fl_open_callback().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10981 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-29 16:41:15 +00:00
Manolo Gouy
fdd1369292 Mac OS + CMake: this file is used by CMake to build the Info.plist files of the application
bundles it creates. This makes these apps support retina displays, because
the file contains
	<key>NSHighResolutionCapable</key>
	<true/>


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10980 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-26 16:14:19 +00:00
Albrecht Schlosser
fb172ecd3c Fix fltk-config for CMake build.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10787 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-07-12 22:32:30 +00:00
Albrecht Schlosser
9adb181156 Make FL_ABI_VERSION configurable (STR #3161).
This commit adds the configure option --with-abiversion and the CMake option
OPTION_ABI_VERSION. Both options can be set e.g. to 10304 to build with
FL_ABI_VERSION = 10304 (FLTK 1.3.4).

For IDE builds there are new files ide/<IDE-NAME>/FL/abi-version.h that
can be edited to change the ABI version before the FLTK lib is built.
Note that this file MUST be copied to the include/FL directory if the
IDE-built library is to be installed.

The default is FL_ABI_VERSION = FL_MAJOR*10000 + FL_MINOR*100 + 0, i.e.
10300 for all FLTK 1.3.x versions to keep binary compatibility (ABI).

Todo: more tests and more documentation.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10786 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-07-12 19:23:55 +00:00
Albrecht Schlosser
f5bf727e37 [CMake] Add option to suppress CMake regeneration (STR #3215).
This option is marked as advanced and only available with CMake >= 3.0.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10721 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-25 22:57:17 +00:00
Albrecht Schlosser
5f3f1c8bc6 [CMake] Add doxygen documentation generation (STR #3195).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10720 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-25 21:42:51 +00:00
Albrecht Schlosser
a6a75b81d2 [CMake] Update fltk-config generation for AIX (STR #3217).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10719 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-25 20:36:48 +00:00
Albrecht Schlosser
e23bf0b768 [CMake] Fix CMake build's fltk-config (STR #3217).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10716 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-25 13:50:27 +00:00
Albrecht Schlosser
ce76b65e55 CMake: Remove installation of example programs (STR #3194).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10695 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-10 15:50:59 +00:00
Manolo Gouy
3ec8bab10e CMake build on Mac OS: r10688 was not a good move because it works with
the makefiles generator but not with the Xcode generator. Stepping back one commit.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10689 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-08 12:16:52 +00:00
Manolo Gouy
4b5b11a1cb CMake building on Mac OS: use a simpler way to put files within app bundles.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10688 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-08 11:37:14 +00:00
Manolo Gouy
ab78d7ee61 Make building on Mac OS: compile with -DUSING_XCODE only for demo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10687 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-08 10:54:24 +00:00
Manolo Gouy
9510c22bd3 CMake building on Mac OS: the demo program uses and finds demo.menu in its bundle.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10686 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-08 09:33:39 +00:00