cmake 可以包含一个包含头文件和 lib 文件但没有 .cmake 文件的库吗?

Can cmake include a library that has header and lib files but no .cmake file?

这是我要包含的库的目录结构(特别是 tre regex):

/home/dave/some/directory/
    /lib
        libtre.a
    /include/tre
        regex.h
        tre-config.h
        tre.h

我不知道如何让 find_package 使用它。我尝试的所有操作都会给出一条错误消息,告知如何指定 .cmake 文件的路径,但没有 cmake 文件。如何在 CMakeLists.txt 中包含这样一个简单的库?

这是我最近尝试将其包含在 CMakeLists.txt 中:

include_directories(/home/dave/some/directory/include/tre)
link_directories(/home/dave/some/directory/lib/)
find_package(tre)
target_link_libraries(the_program PRIVATE tre)

这些行应该可以完成工作:

target_include_directories(your_project PRIVATE /path/include/tre)
target_link_directories(your_project PRIVATE /path/lib)
target_link_libraries(your_project PRIVATE libtre.a)

或者:

add_library(tre STATIC IMPORTED)
set_target_properties(tre PROPERTIES IMPORTED_LOCATION /path/lib/libtre.a)
set_target_properties(tre PROPERTIES INTERFACE_INCLUDE_DIRECTORIES /path/include/tre)

target_link_libraries(your_project PRIVATE tre)