Skip to content
Snippets Groups Projects
Commit 6e15468d authored by Patrick MADELA's avatar Patrick MADELA
Browse files

Add conan recipe

parent 36e63631
Branches
No related tags found
No related merge requests found
* text=auto eol=lf
\ No newline at end of file
target
build
CMakeUserPresets.json
\ No newline at end of file
cmake_minimum_required(VERSION 3.15)
project (asl)
option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
find_package(ace CONFIG REQUIRED)
add_compile_definitions(PROJECT_NAME=${PROJECT_NAME})
add_compile_definitions(PROJECT_VERSION=${PROJECT_VERSION})
file(GLOB_RECURSE sources
src/*.cpp
)
set(includedirs
src
)
add_library(asl ${sources})
target_include_directories(asl PRIVATE ${includedirs})
target_link_libraries(asl PRIVATE ace::ace)
if(MAJOR_VERSION)
set_target_properties(asl PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${MAJOR_VERSION})
endif()
install (DIRECTORY ${CMAKE_SOURCE_DIR}/src/ DESTINATION include
FILES_MATCHING PATTERN "*.h"
)
install (TARGETS asl LIBRARY DESTINATION ${LIB_INSTALL_DIR})
conan.create(['win7-msvc12-x86-static'])
from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout, CMakeDeps
class aslRecipe(ConanFile):
name = "asl"
version = "1.6.0"
package_type = "library"
user = "soleil"
# Optional metadata
license = "GPL-2"
author = "Nicolas Leclercq"
url = "https://gitlab.synchrotron-soleil.fr/software-control-system/tango-devices/inputoutput/adlink/adlinksupportlib"
description = "Adlink Support library"
topics = ("utility", "control-system")
# Binary configuration
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False], "fPIC": [True, False]}
default_options = {"shared": False, "fPIC": True}
# Sources are located in the same place as this recipe, copy them to the recipe
exports_sources = "CMakeLists.txt", "src/**"
def requirements(self):
self.requires("ace/5.7.0@soleil/stable")
def config_options(self):
if self.settings.os == "Windows":
self.options.rm_safe("fPIC")
def configure(self):
if self.options.shared:
self.options.rm_safe("fPIC")
def layout(self):
cmake_layout(self)
def generate(self):
deps = CMakeDeps(self)
deps.generate()
tc = CMakeToolchain(self)
major, minor, patch = map(int, self.version.split('.'))
tc.variables["PROJECT_NAME"] = self.name
tc.variables["PROJECT_VERSION"] = self.version
tc.variables["MAJOR_VERSION"] = major
tc.variables["MINOR_VERSION"] = minor
tc.variables["PATCH_VERSION"] = patch
tc.generate()
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def package(self):
cmake = CMake(self)
cmake.install()
def package_info(self):
self.cpp_info.libs = ["asl"]
cmake_minimum_required(VERSION 3.15)
project(PackageTest CXX)
find_package(asl CONFIG REQUIRED)
add_executable(test_package src/test_package.cpp)
target_link_libraries(test_package asl::asl)
import os
from conan import ConanFile
from conan.tools.cmake import CMake, cmake_layout
from conan.tools.build import can_run
class TestPackageConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
generators = "CMakeDeps", "CMakeToolchain"
def requirements(self):
self.requires(self.tested_reference_str)
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def layout(self):
cmake_layout(self)
def test(self):
cmd = os.path.join(self.cpp.build.bindir, "test_package")
self.run(cmd, env="conanrun")
#include <asl/ContinuousAI.h>
int main(int argc, char* argv[]) {
ADLinkContinuousAI * ai = new ADLinkContinuousAI;
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment