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

Add conan recipe

parent e556087b
Branches
Tags
No related merge requests found
* text=auto eol=lf
\ No newline at end of file
/target/
.project
bin
target
# Ignore all files in folder test_package
test_package/*
# except conanfile.py
!test_package/conanfile.py
cmake_minimum_required(VERSION 3.15)
project(${PROJECT_NAME} CXX)
find_package(yat4tango CONFIG REQUIRED)
find_package(nexuscpp CONFIG REQUIRED)
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
find_package(crashreporting2 CONFIG)
endif()
add_compile_definitions(PROJECT_NAME=${PROJECT_NAME})
add_compile_definitions(PROJECT_VERSION=${PROJECT_VERSION})
add_compile_definitions(USE_NX_FINALIZER)
file(GLOB_RECURSE sources
src/*.cpp
)
set(includedirs
src
sdk
)
add_executable(${EXECUTABLE_NAME} ${sources})
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${includedirs})
target_link_libraries(${EXECUTABLE_NAME} PRIVATE yat4tango::yat4tango)
target_link_libraries(${EXECUTABLE_NAME} PRIVATE nexuscpp::nexuscpp)
target_link_directories(${EXECUTABLE_NAME} PRIVATE ./sdk/)
target_link_libraries(${EXECUTABLE_NAME} PRIVATE XGL_DPP)
target_link_libraries(${EXECUTABLE_NAME} PRIVATE python2.7)
target_link_libraries(${EXECUTABLE_NAME} PRIVATE usb-1.0)
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_link_libraries(${EXECUTABLE_NAME} PRIVATE crashreporting2::crashreporting2)
endif()
install(TARGETS ${EXECUTABLE_NAME} DESTINATION "." RUNTIME DESTINATION bin)
install(DIRECTORY sdk/ DESTINATION lib FILES_MATCHING PATTERN "*.so.?.*")
set(symbolic_links
"libpython2.7.so.1.0:${CMAKE_INSTALL_PREFIX}/lib/libpython2.7.so.1"
"libpython2.7.so.1.0:${CMAKE_INSTALL_PREFIX}/lib/libxspress3.so"
"libusb-1.0.so.0.1.0:${CMAKE_INSTALL_PREFIX}/lib/libusb-1.0.so.0"
"libusb-1.0.so.0.1.0:${CMAKE_INSTALL_PREFIX}/lib/libusb-1.0.so"
"libXGL_DPP.so.3.7:${CMAKE_INSTALL_PREFIX}/lib/libXGL_DPP.so.1"
"libXGL_DPP.so.3.7:${CMAKE_INSTALL_PREFIX}/lib/libXGL_DPP.so"
)
# Création des liens symboliques
foreach(link ${symbolic_links})
string(REPLACE ":" ";" link_parts ${link})
list(GET link_parts 0 source)
list(GET link_parts 1 destination)
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${source} ${destination})")
endforeach()
\ No newline at end of file
conan.create(['el6-gcc44-x86_64-shared'])
from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMake, CMakeDeps
class DanteDppRecipe(ConanFile):
name = "dantedpp"
executable = "ds_DanteDpp"
version = "1.5.1"
package_type = "application"
user = "soleil"
license = "GPL-3.0-or-later"
author = "Arafat Noureddine"
url = "https://gitlab.synchrotron-soleil.fr/software-control-system/tango-devices/acquisition/1d/dantedpp"
description = "DanteDpp device"
topics = ("control-system", "tango", "device")
settings = "os", "compiler", "build_type", "arch"
exports_sources = "CMakeLists.txt", "src/*", "sdk/*"
def requirements(self):
self.requires("yat4tango/[>=1.0]@soleil/stable")
self.requires("nexuscpp/3.5.3@soleil/stable")
if self.settings.os == "Linux":
self.requires("crashreporting2/[>=1.0]@soleil/stable")
def generate(self):
deps = CMakeDeps(self)
deps.generate()
tc = CMakeToolchain(self)
tc.variables["PROJECT_NAME"] = self.name
tc.variables["PROJECT_VERSION"] = self.version
tc.variables["EXECUTABLE_NAME"] = self.executable
tc.generate()
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def package(self):
cmake = CMake(self)
cmake.install()
import os
from conan import ConanFile
from conan.tools.build import can_run
class DanteDppTestConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
def requirements(self):
self.requires(self.tested_reference_str)
def test(self):
if can_run(self):
if self.settings.os == "Windows":
self.run("ds_DanteDpp 2>&1 | findstr \"usage\"", env="conanrun")
else:
self.run("ds_DanteDpp 2>&1 | grep \"usage\"", env="conanrun")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment