Age | Commit message (Collapse) | Author |
|
STRICT_ABI only breaks linkage if static libraries are not available,
because then we try to link against shared libraries with hidden symbols.
|
|
Closes #1262
|
|
This reverts commit f87f8719d02a9adbc9413256fe22958267cfefee.
|
|
|
|
Also, added some #defines to make symbols visible that are in BSD but not
in UNIX. Solaris needs these, since it's fairly strict with its symbol
visibility in system headers.
|
|
Have one script per build. This means more duplication between the
scripts, but it's much easier to understand and to run locally.
|
|
`clang-format -style='{BasedOnStyle: Google, ColumnLimit: 100}'`
|
|
`-fsanitize=address` also needs to be passed to the linker.
|
|
This only works with clang/llvm. Coveralls support needs to be added later.
|
|
It's missing vpx and opus at the moment.
|
|
This caused us to build everything 2-4 times, now we only build it 1-2
times (depending on selection of static/shared builds). The disadvantage
is that now it's more up to the reviewer to ensure modularity (we still
catch it in the bazel build, though).
|
|
|
|
Also fix library dependency order for monolith test.
|
|
The .lib doesn't have debugging information. The .dll has a .pdb file
next to it.
|
|
We're not gaining much from this library, and it's a burden, especially
for windows development.
|
|
Instead of hard-erroring when we don't find dependencies, we just don't
build the things requested and print a warning. This is less annoying to
users because we enable a bunch of things by default. This way, we can at
least build something with the default "cmake" invocation.
|
|
https://github.com/TokTok/toxins/tree/master/tox_shell
|
|
Runtime modules, such as executables and shared libraries should be
installed into "bin" instead of "lib".
|
|
https://www.freebsd.org/cgi/man.cgi?alloca
If stdlib.h does not define alloca, and we're using GCC (or Clang), we
define the macro ourselves in terms of a GCC builtin.
|
|
This way, developers compile toxcore, toxav, and toxencryptsave as C++ at
least once at home, reducing the likelyhood of running into travis
failures where we compile as C++ in the windows build.
|
|
It's a maintenance burden nobody uses. Let's make toxic the official
console client, instead.
|
|
|
|
|
|
|
|
This library contains all the code for the old libtoxcore, libtoxav,
libtoxdns, and libtoxencryptsave. The build for toxav is still optional,
and disabling it causes libtoxcore to simply not contain those symbols
and the pkg-config file to not include opus and vpx as dependencies.
|
|
Tests are not actually ran on appveyor for now, since they all fault for
some reason. For now, we just build them. Also, some tests are disabled
on msvc entirely, because they don't even compile. We'll need to look
into those, later. They are disabled using `MSVC_DONT_BUILD`.
|
|
|
|
Also a little bit of refactoring:
- Moved add_cflag and friends from CMakeLists.txt to a separate
AddCompilerFlag module.
- Build the spectest SUT if msgpack is found, even if spectest itself is
not found, so once it exists, users can run it themselves or
reconfigure cmake.
|
|
This reverts commit 5ff099763b1f56414572e1c12eb2f003117db5a0.
|
|
|
|
|
|
|
|
It doesn't compile, yet. A few changes (like VLA support) need to be made
before we can enable appveyor as a required PR check.
|
|
this updates the version-sync script to generate proper SO versions
which will be used by cmake and libtool to create version symlinks
on the system when a library is installed as well as setting the SO
version in the binary.
To see what this does, you have to configure tox with a prefix:
./configure --prefix=/tmp/tox-with-libtool
mkdir cbuild && cd cbuild && cmake -DCMAKE_INSTALL_PREFIX=/tmp/tox-with-cmake ..
Then run `make && make install`.
in both instances you should see the following installed in `lib/`:
libtoxcore.so -> libtoxcore.so.1.4.0
libtoxcore.so.1 -> libtoxcore.so.1.4.0
libtoxcore.so.1.4.0
inside the binary the soname should be the one with .1 and it should not
contain the full version:
$ objdump -p libtoxcore.so.1.4.0 | grep SONAME
SONAME libtoxcore.so.1
|
|
As mentioned in https://github.com/TokTok/c-toxcore/issues/359#issuecomment-270710463
the current CMake build does not generate version symlinks for library .so files.
This is because the version is not specified for library targets.
See
- https://cmake.org/cmake/help/v3.0/prop_tgt/SOVERSION.html#prop_tgt:SOVERSION
- https://cmake.org/cmake/help/v3.0/prop_tgt/VERSION.html#prop_tgt:VERSION
Use PROJECT_VERSION_MAJOR and MINOR for SOVERSION because
api may break from 0.1 to 0.2 in the 0.x release cycle.
|
|
This takes a few seconds but allows us to cover cases that aren't checked
often.
|
|
We disable the ones that fire, so we can use -Werror. We can then
investigate each warning individually and see whether to fix it or to
keep silencing it.
|
|
Compiling as C++ changes nothing semantically, but ensures that we don't
break C++ compatibility while also retaining C compatibility.
C++ compatibility is useful for tooling and additional diagnostics and
analyses.
|
|
This ensures that on Travis, format_test will always be executed, or the
build fails.
|
|
This makes deployment easier, as the install libpath is used to look up
dependent libraries.
|
|
- Moved apidsl headers next to their generated versions. In the future,
perhaps all (or most) headers will be apidsl-generated, so the sources
should stay together.
- Try to find apidsl/apigen binary and astyle binary and use it for the
format test. Don't run the format test if these can't be found.
|
|
Group chats were changed and now need to be updated. This change got
lost in the merge.
|
|
It is still C code, so still compatible with C compilers as well. This
change lets us see more clearly where implicit conversions occur by
making them explicit.
|
|
|
|
|
|
Generate and install a toxcore.pc file to be used with pkg-config.
|
|
Issue #514. FindCursesw modified to make it simpler. Wide character
can be disable by passing NO_WIDECHAR=ON.
|
|
Default Curses module fails to detect the wide char version of curses
when both are installed. Current module should do better.
|
|
|
|
|