apache / brpc

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".
https://brpc.apache.org
Apache License 2.0
16.56k stars 3.98k forks source link

Do not restrict CMAKE_MODULE_PATH to a single path #2805

Closed vaavaav closed 2 weeks ago

vaavaav commented 3 weeks ago

Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)

More or less. It makes it harder to link bRPC against other projects.

Describe the solution you'd like (描述你期望的解决方法)

Instead of set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake), allow the user to provide other paths while still maintaining this one: set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}). EDIT: list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

With this, developers can provide other paths where Find<library>.cmake files exist, in the command line (for example, cmake -DCMAKE_MODULE_PATH=opt/lib/cmake.

Describe alternatives you've considered (描述你想到的折衷方案)

I had to manually copy Find<library>.cmake files to the path indicated by ${PROJECT_SOURCE_DIR}/cmake...

Additional context/screenshots (更多上下文/截图)

chenBright commented 3 weeks ago

Maybe it's better to use user specific paths first, like this: set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake).

vaavaav commented 3 weeks ago

After searching a bit more, I stumble upon the suggestion of treating CMAKE_MODULE_PATH as a list of paths. As such, list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") is a much better practice.

chenBright commented 3 weeks ago

Good idea! Please check #2806.