本文首發於我的博客https://kezunlin.me/post/12ab5707/,歡迎閱讀!mysql
cmake with user defined entrygit
use find_package
to find default package with name XXX
sql
and cmake file C:\Program Files\CMake\share\cmake-3.10\Modules\FindXXX.cmake
windows
use ${XXX_INCLUDE_DIRS}
in include, and ${XXX_LIBRARIES}
in librariesless
find_package(GTest REQUIRED) include_directories(${GTEST_INCLUDE_DIRS}) find_package(Boost 1.5.8 REQUIRED COMPONENTS date_time system filesystem) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(demo ${GTEST_LIBRARIES} ${Boost_LIBRARIES})
both names are ok.ide
mysqlcppconn-config.cmakepost
# Name: <Name>Config.cmake or <lower name>-config.cmake # mysqlcppconn-config.cmake or MYSQLCPPCONNConfig.cmake # similar to OpenCVConfig.cmake # Tips for MYSQLCPPCONN_ROOT_DIR # use "C:/Program Files/MySQL/Connector.C++ 1.1", otherwise cmake-gui can not auto find include and library set(MYSQLCPPCONN_FOUND TRUE) # auto set(MYSQLCPPCONN_ROOT_DIR "C:/Program Files/MySQL/Connector.C++ 1.1") find_path(MYSQLCPPCONN_INCLUDE_DIR NAMES cppconn/driver.h PATHS "${MYSQLCPPCONN_ROOT_DIR}/include") mark_as_advanced(MYSQLCPPCONN_INCLUDE_DIR) # show entry in cmake-gui find_library(MYSQLCPPCONN_LIBRARY NAMES mysqlcppconn.lib PATHS "${MYSQLCPPCONN_ROOT_DIR}/lib/opt") mark_as_advanced(MYSQLCPPCONN_LIBRARY) # show entry in cmake-gui # use xxx_INCLUDE_DIRS and xxx_LIBRARIES in CMakeLists.txt set(MYSQLCPPCONN_INCLUDE_DIRS ${MYSQLCPPCONN_INCLUDE_DIR} ) set(MYSQLCPPCONN_LIBRARIES ${MYSQLCPPCONN_LIBRARY} ) # cmake entry will be saved to build/CMakeCache.txt message( "mysqlcppconn-config.cmake " ${MYSQLCPPCONN_ROOT_DIR})
halcon-config.cmakeui
# halcon-config.cmake or HALCONConfig.cmake set(HALCON_FOUND TRUE) # auto set(HALCON_ROOT_DIR E:/git/car/windows/lib/halcon) find_path(HALCON_INCLUDE_DIR NAMES halconcpp/HalconCpp.h PATHS "${HALCON_ROOT_DIR}/include") mark_as_advanced(HALCON_INCLUDE_DIR) # show entry in cmake-gui find_library(HALCON_LIBRARY NAMES halconcpp.lib PATHS "${HALCON_ROOT_DIR}/lib/x64-win64") mark_as_advanced(HALCON_LIBRARY) # show entry in cmake-gui # use xxx_INCLUDE_DIRS and xxx_LIBRARIES in CMakeLists.txt set(HALCON_INCLUDE_DIRS ${HALCON_INCLUDE_DIR} ) set(HALCON_LIBRARIES ${HALCON_LIBRARY} ) message( "halcon-config.cmake " ${HALCON_ROOT_DIR})
find_package(HALCON REQUIRED) # user-defined include_directories(${HALCON_INCLUDE_DIRS}) find_package(MYSQLCPPCONN REQUIRED) # user-defined include_directories(${MYSQLCPPCONN_INCLUDE_DIRS}) target_link_libraries(demo ${HALCON_LIBRARIES} ${MYSQLCPPCONN_LIBRARIES})
start cmake-gui, and at first,we should setthis
HALCON_DIR
= E:/git/car/share/cmake-3.10/Modules
MYSQLCPPCONN_DIR
= E:/git/car/share/cmake-3.10/Modules
then configure.net
HALCON_INCLUDE_DIR
and HALCON_LIBRARY
will be found.MYSQLCPPCONN_INCLUDE_DIR
and MYSQLCPPCONN_LIBRARY
will be found.