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

Merge branch 'conan2'

parents 54cbb369 1d804ff8
No related branches found
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)
find_package(d2k-dask CONFIG REQUIRED)
find_package(pcis-dask CONFIG REQUIRED)
add_compile_definitions(PROJECT_NAME=${PROJECT_NAME})
add_compile_definitions(PROJECT_VERSION=${PROJECT_VERSION})
add_compile_definitions(ASL_HAS_DLL)
add_compile_definitions(ASL_BUILD)
file(GLOB_RECURSE sources
src/*.cpp
)
set(includedirs
src
include
)
list(FILTER sources EXCLUDE REGEX ".*/SingleDAQ.cpp")
add_library(asl ${sources})
target_include_directories(asl PRIVATE ${includedirs})
target_link_libraries(asl PRIVATE ace::ace)
target_link_libraries(asl PRIVATE d2k-dask::d2k-dask)
target_link_libraries(asl PRIVATE pcis-dask::pcis-dask)
if(MAJOR_VERSION)
set_target_properties(asl PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${MAJOR_VERSION})
endif()
install (DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include)
install (TARGETS asl LIBRARY DESTINATION ${LIB_INSTALL_DIR})
conan.create(['win7-msvc12-x86'])
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/**", "include/**"
def requirements(self):
self.requires("ace/5.7.0@soleil/stable", transitive_headers=True, transitive_libs=True)
self.requires("d2k-dask/18.10@soleil/stable", transitive_headers=True, transitive_libs=True)
self.requires("pcis-dask/5.10@soleil/stable", transitive_headers=True, transitive_libs=True)
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/Data.h>
class MyData : public asl::Data
{
size_t size () const override{
return 0;
}
};
int main(int argc, char* argv[]) {
MyData * mydata = new MyData();
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment