cmake_minimum_required(VERSION 3.5) project(rt_service) # set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") # Find python and Boost - both are required dependencies find_package(PythonLibs 3.10 REQUIRED) find_package(Boost COMPONENTS python REQUIRED) # Without this, any build libraries automatically have names "lib{x}.so" set(CMAKE_SHARED_MODULE_PREFIX "") add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) #set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) set (CMAKE_RUNTIME_OUTPUT_DIRECTORY /home/markus/git/vrpmdvweb/vrpmdvserver/extensions/rt_service) set (RTSERVICEINCLUDE ./include) file( GLOB LIB_SOURCES .src/*.cpp ) file( GLOB LIB_HEADERS lib/*.h ) # Add a shared module - modules are intended to be imported at runtime. # - This is where you add the source files add_library(rt_service MODULE ./src/rt_service.cpp ./src/monitoringTask/RTSMonitoringTask.cpp ./src/utilities/RelGILLock.cpp ./src/utilities/GILLock.cpp ./src/utilities/RTSCoproHelper.cpp) # Set up the libraries and header search paths for this target target_link_libraries(rt_service ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) target_include_directories(rt_service PRIVATE ${PYTHON_INCLUDE_DIRS} ${RTSERVICEINCLUDE}) set(MY_RESOURCE_FILE rt_service.so) #set_directory_properties(MY_EXTENSION_LIB /home/markus/git/vrpmwvweb/vrpmdvserver/extensions/) #file(COPY ${CMAKE_CURRENT_BINARY_DIR}/${MY_RESOURCE_FILE} # DESTINATION /home/markus/git/vrpmdvweb/vrpmdvserver/extensions/rt_service) # location of the Python header files #PYTHON_VERSION = 3.10 #PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION) # location of the Boost Python include files and library #BOOST_INC = /usr/include #BOOST_LIB = /usr/lib # compile mesh classes #TARGET = rt_service #$(TARGET).so: $(TARGET).o g++ -shared -Wl,--export-dynamic $(TARGET).o -L$(BOOST_LIB) -lboost_python-$(PYTHON_VERSION) -L/usr/lib/python$(PYTHON_VERSION)/config -lpython$(PYTHON_VERSION) -o $(TARGET).so #$(TARGET).o: $(TARGET).cpp g++ -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c $(TARGET).cpp