SET(TARTINE "/home/me/lib_tartine")
Un CMakeLists doit être indépendant de tout chemin en dur. La variable CMake qui va bien est CMAKE_CURRENT_SOURCE_DIR (ou PROJECT_SOURCE_DIR ou CMAKE_SOURCE_DIR).
INCLUDE_DIRECTORIES(${TARTINE}/include)
INCLUDE_DIRECTORIES(include) est suffisant.
LINK_DIRECTORIES(${TARTINE}/lib)
Je n'en comprends pas l'intérêt. LINK_DIRECTORIES permet de spécifier un répertoire où se trouve des librairies.
TARGET_LINK_LIBRARIES( #tout un tas de trucs preexistants ${TARTINE}/lib)
??? Je ne vois pas la ligne qui indique qu'on construit une librairie. TARGET_LINK_LIBRARIES permet de spécifier contre quelles librairies doit être linké une librairie ou un exécutable.
Si je reprends ton Makefile, cela donnerait
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
cmake_minimum_required(VERSION 2.4)
project(hello)
add_subdirectory(tata) # Je suppose que ces librairies sont dans des sous-Makefiles
add_subdirectory(toto)
add_subdirectory(tutu)
include_directories(include)
add_executable(hello hello.cpp)
target_link_libraries(hello tata toto tutu) |
et on aurait dans tata/, toto/ ou tutu.
1 2 3 4 5
|
add_library(tata <liste des sources de tata>)
# et éventuellement,
target_link_libraries(tata <liste de librairies contre lesquels tata doit être linké>) |
et ainsi de suite...
Partager