我想你误解了
include_directories
和
add_library
include_directories
添加要搜索包含文件的目录,而
add_library
可以这样使用(在您的情况下):
add_library(core UNKNOWN IMPORTED)
set_target_properties(core PROPERTIES IMPORTED_LOCATION "../../cpplib/_vs_release/core.lib")
但是,如果我正确理解了您要实现的目标,那么像这样的事情应该可以做到:
set(CPPLIB_DIR "${CMAKE_SOURCE_DIR}/../../cpplib")
set(CPPLIB_DEBUG_DIR "${CPPLIB_DIR}/_vc_debug")
set(CPPLIB_RELEASE_DIR "$(CPPLIB_DIR}/_vc_release")
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CPPLIB_LIB_HINT ${CPPLIB_RELEASE_DIR})
else ()
set(CPPLIB_LIB_HINT ${CPPLIB_DEBUG_DIR})
endif ()
find_library(CPPLIB_CORE_LIBRARY NAMES "core"
PATHS ${CPPLIB_LIB_HINT})
find_library(CPPLIB_CORE2_LIBRARY NAMES "core2"
PATHS ${CPPLIB_LIB_HINT})
find_library(CPPLIB_GENLIB_LIBRARY NAMES "genlib"
PATHS ${CPPLIB_LIB_HINT})
if (("${CPPLIB_CORE_LIBRARY}" STREQUAL "CPPLIB_CORE_LIBRARY-NOTFOUND") OR
("${CPPLIB_CORE2_LIBRARY}" STREQUAL "CPPLIB_CORE2_LIBRARY-NOTFOUND") OR
("${CPPLIB_GENLIB_LIBRARY}" STREQUAL "CPPLIB_GENLIB_LIBRARY-NOTFOUND"))
message(FATAL_ERROR "One of the libs wasn't found!")
endif ()
set(CPPLIB_LIBRARIES ${CPPLIB_CORE_LIBRARY} ${CPPLIB_CORE2_LIBRARY} ${CPPLIB_GENLIB_LIBRARY})
target_link_libraries(my_exe ${CPPLIB_LIBRARIES})
find_path(CPPLIB_INCLUDE_DIR "my_header.h"
PATHS ${CPPLIB_HINT_INCLUDE_DIR})
...
include_directories(${CPPLIB_INCLUDE_DIR})