kali instalar descarga como cant c build cmake

instalar - mĂșltiples directorios bajo cmake



descarga cmake (1)

Actualmente estoy usando make recursive y autotools y estoy buscando migrar a CMake para un proyecto que se ve así:

lx/ (project root) src/ lx.c (contains main method) conf.c util/ str.c str.h etc.c etc.h server/ server.c server.h request.c request.h js/ js.c js.h interp.c interp.h bin/ lx (executable)

¿Cómo debo ir sobre esto?


Si nunca hay una fuente más alta que el directorio lx / src, entonces no hay necesidad del archivo lx / CMakeLists.txt . Si lo hay, debería verse algo como esto:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(lx) add_subdirectory(src) add_subdirectory(dir1) add_subdirectory(dir2) # And possibly other commands dealing with things # directly in the "lx" directory

... donde los subdirectorios se agregan en orden de dependencia de la biblioteca. Las bibliotecas que no dependen de nada más deben agregarse primero, y luego las bibliotecas que dependen de ellas, y así sucesivamente.

lx / src / CMakeLists.txt

cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(lx_exe) add_subdirectory(util) add_subdirectory(js) add_subdirectory(server) set(lx_source_files conf.c lx.c) add_executable(lx ${lx_source_files}) target_link_libraries(lx server) # also transitively gets the "js" and "util" dependencies

lx / src / util / CMakeLists.txt

set(util_source_files etc.c etc.h str.c str.h ) add_library(util ${util_source_files})

lx / src / js / CMakeLists.txt

set(js_source_files interp.c interp.h js.c js.h ) add_library(js ${js_source_files}) target_link_libraries(js util)

lx / src / server / CMakeLists.txt

set(server_source_files request.c request.h server.c server.h ) add_library(server ${server_source_files}) target_link_libraries(server js) # also transitively gets the "util" dependency

Luego, en un símbolo del sistema:

mkdir lx/bin cd lx/bin cmake .. # or "cmake ../src" if the top level # CMakeLists.txt is in lx/src make

Por defecto, el ejecutable lx terminará en el directorio "lx / bin / src" utilizando este diseño exacto. Puede controlar en qué directorio termina utilizando la propiedad de destino RUNTIME_OUTPUT_DIRECTORY y el comando set_property.

http://www.cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:RUNTIME_OUTPUT_DIRECTORY

http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:set_property

Consulte target_link_libraries libs ya sea por nombre de objetivo de CMake, si la lib está construida como un objetivo de CMake a través de add_library, o de otra manera por la ruta completa al archivo de la biblioteca.

Vea también, el resultado de "cmake --help-command target_link_libraries", o cualquier otro comando de cmake, y la documentación completa en línea para los comandos de cmake que se encuentran aquí:

http://www.cmake.org/cmake/help/cmake-2-8-docs.html#section_Commands

http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:target_link_libraries