370 Commits

Author SHA1 Message Date
Jonathan Thomas
534e81d6f1 Adding make arg 2019-07-16 01:50:05 -05:00
Jonathan Thomas
de5ccaebf1 Changing makefile type to MSYS Makefile 2019-07-16 01:48:28 -05:00
FeRD (Frank Dana)
8b841731b0 Travis: add MacOS build
This adds a MacOS build (`os: osx`) to the Travis build matrix,
alongside the existing Linux build. Each build will be carried
out on both platforms simultaneously.

It also:
- Uses Travis' apt addon to install packages, rather than `sudo apt-get`
  (MacOS packages are installed using `brew install` commands)
- No longer installs the libopenshot-audio PPA or the
  libopenshot-audio-dev package prior to building the source tree
- Installs doxygen (and graphviz on Linux)
- Runs `make doc` before `make install`
- Uses `CMAKE_INSTALL_PREFIX` instead of `make DESTDIR`
2019-07-07 21:33:59 -04:00
FeRD (Frank Dana)
36917e4a2e Clean up hardcoded hex version slightly 2019-07-07 19:52:47 -04:00
FeRD (Frank Dana)
b6f0507348 Add ugly workaround for PROJECT_VERSION_HEX
`math(EXPR ... OUTPUT_FORMAT HEXADECIMAL)` only works in recent
CMake versions, so if it's not available we just hardcode a
fixed hex string instead of computing the version properly
from the project variables.
2019-07-07 19:42:48 -04:00
FeRD (Frank Dana)
f0b462b152 Generate JUCE headers from templates
The header files JuceLibraryCode/*.h are no longer used. Instead there
are templates in include/, which CMake will use to generate headers in
CMAKE_CURRENT_BINARY_DIR/include/ at build time.
* include/JuceHeader.h.in
- variables in namespace ProjectInfo are populated with data from
  the corresponding CMake variables
* include/AppConfig.h.in
- No changes currently, CMake will simply copy this file to AppConfig.h
2019-07-07 19:13:04 -04:00
FeRD (Frank Dana)
0c86a6d57b Move doc install to DOCDIR/API
This moves the installation target directory for the documentation
to `${CMAKE_INSTALL_DOCDIR}/API`, which on most systems is
`${CMAKE_INSTALL_PREFIX}/share/doc/libopenshot-audio/API`.
2019-07-07 16:30:03 -04:00
FeRD (Frank Dana)
95afd9275f Exclude all build* files/directories @ root level
I tend to create multiple build paths at the root of the
project, for testing various configurations. So I'll have
all of `build/`, `build-somebranch`, `build-otherbranch`,
etc. sitting around.

This PR updates the `.gitignore` for the repo to exclude
`/build*`, meaning _anything_ with a name that starts with
`build`, if it's located at the root of the repository tree.
2019-07-06 03:07:10 -04:00
Jonathan Thomas
7939e156e5 Merge pull request #56 from ferdnyc/docs-build-and-install
Fix Python3 discovery, add docs install
2019-07-04 12:26:02 -05:00
FeRD (Frank Dana)
9235689efd Fix Python3 discovery, add docs install
CMake will now discover for Python 3 in addition to Doxygen, as a
prerequisite for creating a `doc` target. If everything checks out,
the user can run `make doc` to generate formatted docs, and they
will be installed to `${CMAKE_INSTALL_DOCDIR}` (typically
`${CMAKE_INSTALL_PREFIX}/share/doc/libopenshot/audio/`) when
`make install` is run.
2019-07-04 02:48:22 -04:00
Jonathan Thomas
e86f12b6b8 Merge pull request #54 from ferdnyc/juce-doc-script
Upgrade Doxygen docs
2019-07-02 16:42:24 -05:00
FeRD (Frank Dana)
206c52d937 Turn off Doxygen warnings
They're not _our_ warnings, since we didn't write the documentation
in the JUCE code, so there's really not a lot of point in seeing
them spewed out on every build.
2019-07-01 19:43:11 -04:00
FeRD (Frank Dana)
64350f32f4 Check targets exist b4 setting depends 2019-07-01 19:43:00 -04:00
Jonathan Thomas
46925d9802 Merge pull request #53 from ferdnyc/patch-2
Win32: Update DONT_AUTOLINK define name
2019-07-01 14:28:12 -05:00
Jonathan Thomas
e7146c9e1e Merge pull request #52 from ferdnyc/fix-win32-install
Fix Win32 library install
2019-07-01 13:06:13 -05:00
FeRD (Frank Dana)
3f96c168ca A few more Doxygen tweaks 2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
604961e040 INSTALL.md: Clean up formatting for doxygen 2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
531e0cd2a9 Don't remove juce namespace 2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
1438ace4ab Fix some bugs in UseDoxygen.cmake
There was a bug in the definition of `DOXYFILE_LATEX`, and _another_
in the processing of it (which were the only reason it wasn't
defaulting on, the way it appeared to be configured), fixed the
bug and changed it to default OFF. But now it _can_ be enabled.

Also moved the handling of `DOXYFILE_DOT` out of the latex-only
section, so that it can be turned on with the new config variable
`DOXYFILE_USE_DOT` (default on). If `DOXYFILE_USE_DOT` is enabled
and the `dot` executable is found, `DOXYFILE_DOT` will be set "YES"
and `dot` will be used for the HTML as well, giving better graphs.
2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
acb3b0e2d3 Doygen: Include doc/*.md in docs
Also include the documentation MarkDown pages in the Doxygen docs.
These will show up as Related Pages in the interface.

* The formatting of `INSTALL-*.md` had to be changed some:
  - Doxygen doesn't support headings in bulleted lists (lines starting
    with `* ###`) -- I'm not even sure that's legal markdown. They were
    changed to just level 3 headings (lines starting with `###`).
  - ALL Windows paths in `INSTALL-WINDOWS.md` were wrapped in backticks,
    to prevent Doxygen parsing them as markup commands.
  - Level 1 headings were added to the top of the three install docs,
    giving them the title "Building libopenshot for ___(OS)___".
    Otherwise all three pages were titled "Getting Started".

* Separately, the table at the top of `HW-ACCEL.md` does not
  translate well to Doxygen. It will need further polishing. But the
  docs are all quite readable now.
2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
aab360c601 Doxygen: Update formatting from JUCE configs
Doxygen was having real trouble generating clean docs from
the JUCE sources, but their own website docs were generated
with Doxygen as well, and looked great.

Turns out, they preprocess their own source files before
generating docs from them. Borrowed their Python script to
munge the sources, and connected it up as a new target
dependency for `make doc`. It'll only run if the docs are
requested to be built, and `make clean` will clear out
the preprocessed sources if it's run.
2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
2966e43aaa Doxyfile.in: Update configs from JUCE distribution 2019-06-30 23:45:54 -04:00
FeRD (Frank Dana)
78be6f44ce Doxyfile.in: Upgrade with doxygen -u 2019-06-30 23:45:54 -04:00
Frank Dana
55775875f2 Win32: Update DONT_AUTOLINK define name
The one we were using does not exist in Juce.
2019-06-27 14:15:07 -04:00
FeRD (Frank Dana)
1844e5a7fc Fix Win32 library install
The DLL on Windows is installed to the RUNTIME DESTINATION of
the target, so specify that path too.
2019-06-26 20:13:10 -04:00