Skip to content

Commit

Permalink
Enable c-toxcore conan packaging
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexandrePTJ authored and robinlinden committed Apr 11, 2021
1 parent 6f3cdb1 commit c9ad4a2
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 22 deletions.
10 changes: 4 additions & 6 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,17 @@ cache:
install:
- set PATH=C:\Python38-x64\Scripts;%PATH%
- py -3 -m pip install conan
- conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan --force

before_build:
- ps: |
mkdir _build
cd _build
conan install ..
conan install -if _build .
build_script:
- conan build .. --configure --build
- conan build -bf _build -if _build .

test_script:
# TODO(iphydf): Tests are unstable and slow on windows at the moment.
- set CONAN_CPU_COUNT=50
- conan build .. --test &
- conan install -if _build -o with_tests=True .
- conan build -bf _build -if _build . &
exit 0
72 changes: 56 additions & 16 deletions conanfile.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,73 @@
# pylint: disable=not-callable
import os
import re

from conans import CMake
from conans import ConanFile
from conans.tools import collect_libs
from conans.tools import load


class ToxConan(ConanFile):
name = "c-toxcore"
url = "https://tox.chat"
description = "The future of online communications."
license = "GPL-3.0-only"
settings = "os", "compiler", "build_type", "arch"
requires = "libsodium/1.0.18", "opus/1.3.1", "libvpx/1.8.0@bincrafters/stable"
requires = "libsodium/1.0.18", "opus/1.3.1", "libvpx/1.9.0"
generators = "cmake_find_package"
scm = {"type": "git", "url": "auto", "revision": "auto"}

options = {"with_tests": [True, False]}
default_options = {"with_tests": False}

_cmake = None

def _create_cmake(self):
if self._cmake is not None:
return self._cmake

self._cmake = CMake(self)
self._cmake.definitions["AUTOTEST"] = self.options.with_tests
self._cmake.definitions["BUILD_MISC_TESTS"] = self.options.with_tests
self._cmake.definitions["MUST_BUILD_TOXAV"] = True
if self.settings.compiler == "Visual Studio":
self._cmake.definitions["MSVC_STATIC_SODIUM"] = True

self._cmake.configure()
return self._cmake

def set_version(self):
content = load(os.path.join(self.recipe_folder, "CMakeLists.txt"))
version_major = re.search(r"set\(PROJECT_VERSION_MAJOR \"(.*)\"\)",
content).group(1)
version_minor = re.search(r"set\(PROJECT_VERSION_MINOR \"(.*)\"\)",
content).group(1)
version_patch = re.search(r"set\(PROJECT_VERSION_PATCH \"(.*)\"\)",
content).group(1)
self.version = "%s.%s.%s" % (
version_major.strip(),
version_minor.strip(),
version_patch.strip(),
)

def requirements(self):
if self.settings.os == "Windows":
self.requires("pthreads4w/3.0.0")

def source(self):
self.run("git clone https://github.com/toktok/c-toxcore.git")

def build(self):
cmake = CMake(self)
cmake.definitions["AUTOTEST"] = True
cmake.definitions["BUILD_MISC_TESTS"] = True
cmake.definitions["MUST_BUILD_TOXAV"] = True
if self.settings.compiler == "Visual Studio":
cmake.definitions["MSVC_STATIC_SODIUM"] = True
cmake = self._create_cmake()
cmake.build()

if self.should_configure:
cmake.configure()
if self.options.with_tests:
cmake.test()

if self.should_build:
cmake.build()
def package(self):
cmake = self._create_cmake()
cmake.install()

if self.should_test:
cmake.test()
def package_info(self):
self.cpp_info.libs = collect_libs(self)

if self.settings.os == "Windows":
self.cpp_info.system_libs = ["Ws2_32", "Iphlpapi"]

0 comments on commit c9ad4a2

Please sign in to comment.