I use redis3m as git submodule in my project:
$ tree -L 1 ch1/
ch1/
├── build
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── CMakeLists.txt
├── gtest/
├── main.cc
├── Makefile
├── redis3m/
└── test
I add CMake add_subdirectory to compile redis3m:
add_subdirectory(redis3m)
Then I got the following error message:
[ 41%] Built target redis3m
make[2]: *** No rule to make target `Doxyfile', needed by `redis3m/docs'. Stop.
make[1]: *** [redis3m/CMakeFiles/apidoc.dir/all] Error 2
make: *** [all] Error 2
I fix the error by changing CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR:
FIND_PACKAGE(Doxygen QUIET)
IF (DOXYGEN_FOUND)
- SET(DOXYGEN_INPUT "${CMAKE_SOURCE_DIR}/Doxyfile")
+ SET(DOXYGEN_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile")
SET(DOXYGEN_OUTPUT "docs")
I think CMAKE_CURRENT_SOURCE_DIR better than CMAKE_SOURCE_DIR when compiling redis3m in a project with multiple dependencies (When compiling redis3m alone, the two variable is same).
I use
redis3mas git submodule in my project:I add CMake
add_subdirectoryto compileredis3m:Then I got the following error message:
I fix the error by changing
CMAKE_SOURCE_DIRtoCMAKE_CURRENT_SOURCE_DIR:I think
CMAKE_CURRENT_SOURCE_DIRbetter thanCMAKE_SOURCE_DIRwhen compilingredis3min a project with multiple dependencies (When compilingredis3malone, the two variable is same).