summaryrefslogtreecommitdiff
path: root/cmake
AgeCommit message (Collapse)Author
2020-05-29Add support for the conan C/C++ package managerRobin Linden
* Don't overwrite the CMAKE_MODULE_PATH * Allow linking libsodium statically with MSVC * Allow finding libsodium the normal way on MSVC * Allow using pthreads4w for pthreads on MSVC * Fall back to find_package if pkg_find_module fails * Don't pass incompatible compile flags to MSVC * Also try to find Opus and libvpx using their canonical names * Support building using conan * Allow pkg_use_module to take a list of libraries to look for * Build for Windows on Appveyor using conan
2020-04-26Rework the toxchat/bootstrap-node Docker image.iphydf
* Use fully static build for the bootstrap daemon. * Store a sha256sum of the binary in the repo. * Updated documentation for it. * Add support for fully static build in cmake. * Enable the docker build on every PR, so we catch changes to the checksum. I realise this is adding toil, but having the checksum is valuable for security of released binaries.
2020-03-02Remove testing/av_test.c.iphydf
It's a maintenance burden. Nobody uses this. It depends on an ancient version of opencv that less and less systems actually have.
2019-01-06Enable auto tests under STRICT_ABI if static libs are available.iphydf
STRICT_ABI only breaks linkage if static libraries are not available, because then we try to link against shared libraries with hidden symbols.
2018-12-11Add cmake option for building additional testszugz (tox)
Closes #1262
2018-09-24Revert "Improve cmake build for MSVC."iphydf
This reverts commit f87f8719d02a9adbc9413256fe22958267cfefee.
2018-09-22Improve cmake build for MSVC.Mick Sayson
2018-07-19Link -lsocket and -lnsl for socket functions on Solaris.iphydf
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.
2018-07-01Simplify Travis CI builds.iphydf
Have one script per build. This means more duplication between the scripts, but it's much easier to understand and to run locally.
2018-06-24Use clang-format for C++ code.iphydf
`clang-format -style='{BasedOnStyle: Google, ColumnLimit: 100}'`
2018-06-18Fix linking with address sanitizer.iphydf
`-fsanitize=address` also needs to be passed to the linker.
2018-03-17Add COVERAGE cmake flag for clang.iphydf
This only works with clang/llvm. Coveralls support needs to be added later.
2018-02-22Fix toxcore.pc generation.iphydf
It's missing vpx and opus at the moment.
2018-02-18Don't build all the small sub-libraries.iphydf
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).
2018-02-11Look for dependencies in third_party/Robin Lindén
2018-02-11Improve gtest finding, support local checkout.iphydf
Also fix library dependency order for monolith test.
2018-02-09Build toxcore with libsodium.dll instead of libsodium.lib.iphydf
The .lib doesn't have debugging information. The .dll has a .pdb file next to it.
2018-02-09Remove libcheck from the dependencies.iphydf
We're not gaining much from this library, and it's a burden, especially for windows development.
2018-02-06Make cmake script more forgiving.iphydf
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.
2018-02-06Move tox_shell program to the toxins repository.iphydf
https://github.com/TokTok/toxins/tree/master/tox_shell
2018-01-25Install runtime modules into bin directoryMaxim Biro
Runtime modules, such as executables and shared libraries should be installed into "bin" instead of "lib".
2018-01-22Use <stdlib.h> for alloca on FreeBSD.iphydf
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.
2018-01-21Make the monolith test a C++ binary.iphydf
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.
2018-01-20Remove nTox from the repo.iphydf
It's a maintenance burden nobody uses. Let's make toxic the official console client, instead.
2018-01-16Make libcheck optional for windows builds.iphydf
2018-01-15update rpm spec and use variables in cmake instead of hardcoded paths (#624)Smoked Cheese
2018-01-12Fix some typos in code and cmake commentsyangfl
2017-12-28Generate only one large library "libtoxcore".iphydf
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.
2017-06-05Build tests on appveyor, the MSVC build.iphydf
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`.
2017-06-04Factor out strict_abi cmake code into a separate module.iphydf
2017-06-04Forbid undefined symbols in shared libraries.iphydf
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.
2017-04-22Revert "Implement tox_loop"Maxim Biro
This reverts commit 5ff099763b1f56414572e1c12eb2f003117db5a0.
2017-04-01Implement tox_loopAnsa89
2017-02-20Fix libsodium unresolved external symbol errorsMaxim Biro
2017-02-20Fix pthreads in AppVeyor buildMaxim Biro
2017-01-22Add appveyor build for native windows tests.iphydf
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.
2017-01-18SO versions for cmake and libtoolCarsten Brandt
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
2017-01-08Add soversion to library files to generate proper symlinksCarsten Brandt
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.
2017-01-05Test a few cmake option combinations before the build.iphydf
This takes a few seconds but allows us to cover cases that aren't checked often.
2016-11-06Enable all possible C compiler warning flags.iphydf
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.
2016-11-02Compile as C++ for windows builds.iphydf
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.
2016-10-26Error if format_test can't be executed.iphydf
This ensures that on Travis, format_test will always be executed, or the build fails.
2016-10-11Install libraries with RPATH.iphydf
This makes deployment easier, as the install libpath is used to look up dependent libraries.
2016-10-02Rebuild apidsl'd headers in cmake.iphydf
- 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.
2016-09-26C++ the second round.iphydf
Group chats were changed and now need to be updated. This change got lost in the merge.
2016-09-24Make toxcore code C++ compatible.iphydf
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.
2016-09-14Add option to build static libraries.iphydf
2013-08-24Remove cmake build systemjin-eld
2013-08-23Add pkg-config fileManuel Argüelles
Generate and install a toxcore.pc file to be used with pkg-config.
2013-08-22Make wide character support optionalManuel Argüelles
Issue #514. FindCursesw modified to make it simpler. Wide character can be disable by passing NO_WIDECHAR=ON.