Skip to content

Commit

Permalink
Merge branch 'develop' for MeTA v2.4.1.
Browse files Browse the repository at this point in the history
  • Loading branch information
Chase Geigle committed Sep 8, 2016
2 parents 9f55ba4 + b7a71f2 commit ed203f2
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 4 deletions.
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# [v2.4.1][2.4.1]
## Bug fixes
- Eliminate excess warnings on Darwin about double preprocessor definitions
- Fix issue finding `config.h` when used as a sub-project via
add_subdirectory()

# [v2.4.0][2.4.0]
## New features
- Add a minimal perfect hashing implementation for `language_model`, and unify
Expand Down Expand Up @@ -476,7 +482,8 @@
# [v1.0][1.0]
- Initial release.

[unreleased]: https://github.com/meta-toolkit/meta/compare/v2.4.0...develop
[unreleased]: https://github.com/meta-toolkit/meta/compare/v2.4.1...develop
[2.4.1]: https://github.com/meta-toolkit/meta/compare/v2.4.0...v2.4.1
[2.4.0]: https://github.com/meta-toolkit/meta/compare/v2.3.0...v2.4.0
[2.3.0]: https://github.com/meta-toolkit/meta/compare/v2.2.0...v2.3.0
[2.2.0]: https://github.com/meta-toolkit/meta/compare/v2.1.0...v2.2.0
Expand Down
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,9 @@ endif()
CompilerKludges(meta/kludges.h)

configure_file(include/meta/config.h.in meta/config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(meta-definitions INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
$<INSTALL_INTERFACE:include>)

cmake_pop_check_state()

Expand Down
38 changes: 38 additions & 0 deletions PACKAGING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Packaging or Installing MeTA

Please follow these slightly modified build instructions if you are either
a packager and you want to make a package of MeTA for your distribution, or
if you simply want to install MeTA to e.g. `/usr/local`.

You will need the following `cmake` flags:

- `-DBUILD_SHARED_LIBS=On`: build `.so` libraries instead of `.a`.
- `-DBUILD_STATIC_ICU=On`: force building a static ICU library as part of
`meta-utf.so` to ensure Unicode standard stability.

If you are building for a Linux platform, you *must* use GCC. **Do not use
Clang/libc++**, as the library throws exceptions and must be built in the
same way all other C++ applications on the system are expected to be built.

MeTA will require [cpptoml][cpptoml] to be installed. This is
straightforward as cpptoml is header-only. Please follow the standard
`cmake` build instructions for cpptoml and package using `make install` to
install the CMake configuration files for cpptoml. This allows MeTA's CMake
configuration files to find cpptoml as a dependency.

MeTA can then be installed using `make install`.

# Using an Installed MeTA

You can consume MeTA most easily by using a CMake build system (though you
do not have to). Your `CMakeLists.txt` might look something like the
following:

```cmake
find_package(MeTA 2.4 REQUIRED)
add_executable(my-program my_program.cpp)
target_link_libraries(my-program meta-index) # or any other MeTA libraries
```

[cpptoml]: https://github.com/skystrife/cpptoml
58 changes: 58 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Releasing MeTA Versions

This document contains a checklist for releasing a version of MeTA so we
follow a consistent releasing process.

1. Pick a version number. MeTA releases (Major.Minor.Patch) ought to be API
compatible with other releases that share the same Major and Minor
version numbers but different Patch versions.

Major API changes (like new libraries or toolkit-wide backwards
incompatible API changes) increment the Major release number. Minor API
changes (like enhancements) increment the Minor release number. Patch
versions should be released only for bug fixes.

2. Ensure `CHANGELOG.md` is up to date.

If there are *any* breaking changes, mention these explicitly. If there
are migration strategies to work around these breaking changes, provide
a brief explanation (or a link to explain them).

3. If there are major *or* minor API changes, ensure that the documentation
on the website (meta-toolkit/meta-toolkit.org) is correct.

Update Doxygen as necessary.

4. Ensure that the build is passing on both Travis (Linux + OS X) and
Appveyor (Windows/MinGW-w64).

5. Merge branch `develop` into `master` with a commit message

> Merge branch 'develop' for MeTA vX.Y.Z
Use `git merge develop --no-ff` to create a merge commit.

6. Tag the merge commit. The tag should be both annotated *and* signed:

```
git tag -as vX.Y.Z
```

The tag message should be the contents of the CHANGELOG for that
version. Remove unnecessary markdown syntax like header markers and code
blocks. Backticks can stay.

7. Push the merge and the tags to GitHub:

```
git push --follow-tags
```

8. Create a release on GitHub using the new tag. Its title should be "MeTA
vX.Y.Z".

The contents of the message should be exactly the same as the CHANGELOG
entry for that release.

9. Upload the model files and include a section in the GitHub release notes
containing their sha256 sums.
4 changes: 2 additions & 2 deletions include/meta/config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include "meta/kludges.h"

// OS X
#cmakedefine META_IS_DARWIN
#cmakedefine _DARWIN_USE_64_BIT_INODE
//#cmakedefine META_IS_DARWIN
//#cmakedefine _DARWIN_USE_64_BIT_INODE

#endif

0 comments on commit ed203f2

Please sign in to comment.