Commit Graph

164 Commits

Author SHA1 Message Date
FeRD (Frank Dana)
456569b4e8 Travis: OS X updates
- Switch to Travis' homebrew addon instead of calling `brew` directly.
- Install gcc via homebrew.
- Only run `make doc` on Linux, OS X is slow enough.
2019-07-19 00:28:36 -04: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
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
Jonathan Thomas
9b278998cc Merge pull request #51 from OpenShot/cmake-owns-version
Cmake owns version (merging #50 into develop)
2019-06-21 17:53:34 -05:00
Jonathan Thomas
54ac99b284 Merge pull request #50 from ferdnyc/cmake-owns-version
Define version info in CMakeLists.txt
2019-06-21 17:07:53 -05:00
FeRD (Frank Dana)
8c03300069 Remove documentation install logic
The logic to install the documentation files never worked, and
never could have worked, as it's based on a misunderstanding of
CMake. The glob that looks for documentation files will be run
at build _generation_ time, when the doc files have not been
built yet, so it will never find any.

Installing files based on a glob is what the `FILES MATCHING`
argument to `install()` is for. (But we can't use that, either,
since generating doc files is optional and won't necessarily be
done before install. It's fine to not install the docs, they
can always be browsed from the build directory, or packaged
right from there.)
2019-06-19 13:15:00 -04:00
FeRD (Frank Dana)
6a2c5e66d6 Define version info in CMakeLists.txt
* Version information is now _defined_ at the top of the root
  `CMakeLists.txt` file, which is now the primary source of that
  data. Other instances of version information will consume the
  CMake-defined version information via the appropriate variables.

* `include/Version.h` is eliminated, as it was never used for
  any purpose other than to set the version information for CMake.

* Those GLOBAL PROPERTY entries for JUCE_WINDOWS, JUCE_LINUX, etc.
  Are removed. Those never had any effect, as CMake properties are
  not defined during the build. The Juce header files automatically
  determine the value of the JUCE_ defines.

* The source file globbing (which was always fragile) is replaced
  by a list of modules, from which filenames are generated.

* "-DDEBUG" is added to the CXX_FLAGS for debug builds, and
  CMAKE_BUILD_TYPE is set to "Debug" if not set by the user
  (A comment in the CMakeLists.txt explains in more detail)

* The CMakeLists files are also updated to...
  - Use GnuInstallDirs
  - Be less deeply nested, e.g.
    IF(WIN32)
    ELSEIF(UNIX)
      IF(APPLE)
      ELSE()
      ENDIF()
    ENDIF()

    is replaced by

    if(WIN32)
    endif()
    if(UNIX AND APPLE)
    endif()
    if(UNIX AND NOT APPLE)
    endif()

    as in practice, at most one of those will ever be true.
2019-06-19 09:04:41 -04:00
Jonathan Thomas
77edb1f14d Merge pull request #46 from ferdnyc/patch-1
Travis CI: Also run `make install`
2019-05-02 13:24:59 -05:00
Frank Dana
76986d4f7c Travis CI: Also run make install
As in OpenShot/libopenshot#223, run the install step after build (with `DESTDIR=dist/`) to exercise more of the build tooling.
2019-04-18 16:56:06 -04:00