Clion combination of mainstream development library complete configuration of cmakelist

Development Environment: ubuntu 18.04 

IDE:Clion 2019

 

As used herein cmakelist configure some major libraries.

There are the following:

opencv4.1.0    json.cpp    boost   eigen

cnpy  zxing

zbar

cmake_minimum_required(VERSION 3.5)
project(KeekoAIRobot)

set(CMAKE_CXX_STANDARD 14)

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3 -DNDEBUG")

#找到opencv的包
set(TARGET_LIBS "/usr/local/include/opencv4/opencv2/")
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )

#jsoncpp
set(jsoncpp_include_dir "/usr/local/include")
set(jsoncpp_link_dir "/usr/lib/x86_64-linux-gnu")
include_directories(${jsoncpp_include_dir})
link_directories(${jsoncpp_link_dir})

#boost
find_package(Boost REQUIRED COMPONENTS filesystem)
set(Boost_LIBS boost_filesystem boost_system)

#eigen
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR}${EIGEN3_LIBRARIES})

# cnpy
option(ENABLE_STATIC "Build static (.a) library" ON)

find_package(ZLIB REQUIRED)

include_directories(${ZLIB_INCLUDE_DIRS})

add_library(cnpy SHARED "libs/cnpy/cnpy.cpp")
target_link_libraries(cnpy ${ZLIB_LIBRARIES})
install(TARGETS "cnpy" LIBRARY DESTINATION lib PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

#zbar
set(zbar_include_dir "/usr/local/include")
set(zbar_link_dir "/usr/local/lib")

include_directories(${zbar_include_dir})
link_directories(${zbar_link_dir})
link_libraries(zbar)

#zxing
set(zxing_include_dir "/usr/local/include")
set(zxing_link_dir "/usr/local/lib")

include_directories(${zxing_include_dir})
link_directories(${zxing_link_dir})
link_libraries(zxing)


if(ENABLE_STATIC)
    add_library(cnpy-static STATIC "libs/cnpy/cnpy.cpp")
    set_target_properties(cnpy-static PROPERTIES OUTPUT_NAME "cnpy")
    install(TARGETS "cnpy-static" ARCHIVE DESTINATION lib)
endif(ENABLE_STATIC)

install(FILES "libs/cnpy/cnpy.h" DESTINATION include)
install(FILES "mat2npz" "npy2mat"  " Npz2mat " DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) 


# multithreading 
the SET (CMAKE_CXX_FLAGS " $ {} CMAKE_CXX_FLAGS -std = c ++ 11 -pthread " ) 

# add files to run 
add_executable (KeekoAIRobot 
        main.cpp ) 

# Dynamic link 
#target_link_libraries (pedestrian_detection OpenCV_LIBS $ {}) 
target_link_libraries (KeekoAIRobot OpenCV_LIBS $ {}) 
target_link_libraries (KeekoAIRobot jsoncpp) 
target_link_libraries (KeekoAIRobot cnpy) 
#aux_source_directory (. DIR_LIB_SRCS)
target_link_libraries(KeekoAIRobot zbar)
target_link_libraries (KeekoAIRobot ZXing) 

# Search catalog search the source code and assigned to the variable

# Add the library file 
#add_library (KeekoAILib SHARED $ {DIR_LIB_SRCS} )

Guess you like

Origin www.cnblogs.com/lx17746071609/p/11428835.html