[CMake] CMake 3.2.2 generates too many virtual folders for Codeblocks project
roman
t.err.a at yandex.ru
Thu Apr 23 05:11:59 EDT 2015
Hi,
i have a project in the path D:\folder1\folder2\prj1, all sources and
CMakeLists.txt are in this folder 'prj1'.
CMake generates for the Codeblocks project file in which the source
files are located in a virtual folders with the path not corresponding
to the root folder of the project 'prj1'.
For Codelite CMake generates normal path corresponding to the root
folder of the project.
So generated project tree in Codeblocks:
|
||___CMakeFiles||
||| |__[..]||
||| | |__[..]||
||| | |__[programms||]||
||| | |__[cmake||]||
||| | |__[share||]||
||| | |__cmake-3.2||
||| | |__[Modules||]||
||| | |__||[Compiler||]||
||| | | |__GNU-C.cmake||
||| | | |__GNU-CXX.cmake||
||| | | |__GNU.cmake||
||| | | |__GNU.cmake||
||| | |||
||| | |_||_[Platform||]||
||| | |
|__Windows-GNU-C-ABI.cmake||
||| | | |__ ..... cmake
files|||
|| | |||
||| | |__ ..... cmake files||
||| |__CMakeList.txt||
|||||
|||||__[Sources]||
||| |__[||folder1]||
||| |__[folder2]||
||| |__[prj1]||
||| |__ .... '.cpp' files||
|||||
|||__[Headers]||
||| |__[folder1]||
||| |__[folder2]||
||| |__[prj1]||
||| |__ .... '.h' files||
|||||
|||__[Resources]||
|| |__[folder1]||
|| |__[folder2]||
|| |__[prj1]||
|| |__ resource.rc|
Generated project tree in Codelite:
|||||||||||
|||__[include]||
||| |_||.... '.h' files||
|||||__[src]||
|| |||__ .... '.cpp' files|
Why such a difference?
Is it possible to get CMake does not create extra virtual folders for
Codeblocks project?
CMakeLists.txt:
|/# Сборочный файл для программы my_program//
//
//# Минимальная версия CMake, младше нельзя.//
//cmake_minimum_required( VERSION 2.8.4 )//
//
//# Устанавливаем значение переменной BIN//
//set( BIN hisview_dev )//
//# Имя проекта у нас соответствует имени программы.//
//project( ${BIN} )//
//
//# Добавляем свои опции компиляции//
//set ( CMAKE_CXX_FLAGS "-m32 -std=gnu++11" )//
//
//set(CMAKE_INSTALL_PREFIX $ENV{mybin})//
//message (STATUS "CMAKE_INSTALL_PREFIX:" ${CMAKE_INSTALL_PREFIX})//
//
//# указываем куда складывается результат компиляции//
//set (EXECUTABLE_OUTPUT_PATH $ENV{mybin})//
//
//# пока не разбирался для чего это ???//
//#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $ENV{PROJECTS_OUTPUT})//
//
//# Устанавливаем корневой путь к папке с исходниками программы.//
//set( SOURCE_ROOT ${PROJECT_SOURCE_DIR} )//
//message (STATUS "PROJECT_SOURCE_DIR:" ${PROJECT_SOURCE_DIR})//
//
//set(DEBEA_ROOT $ENV{DEBEA})//
//file(TO_CMAKE_PATH ${DEBEA_ROOT} DEBEA_ROOT)//
//message (STATUS "DEBEA_ROOT" ${DEBEA_ROOT})//
//#STRING(REGEX REPLACE '\\' '/' TEST_VAR ${DEBEA_ROOT} )//
//set(DEBEA_INCLUDE ${DEBEA_ROOT}/dba)//
//message (STATUS "DEBEA_INCLUDE:" ${DEBEA_INCLUDE})//
//set(DEBEA_LIB ${DEBEA_ROOT}/lib/gcc_static_mingw-w64-32)//
//
//# По умолчанию имена файлов с исходниками нужно перечислять явно.//
//# Функция aux_source_directory (рекурсивно) просматривает исходники//
//#(начиная от корневого пути, указанного выше) и собирает имена всех//
//# файлов, имеющих классическое разрешение, такие как .cpp, .cxx и т.п.//
//# В итоге формируется список всех найденных файлов и сохраняется в
переменной//
//# SOURCES//
//aux_source_directory( ${SOURCE_ROOT} SOURCES )//
//message (STATUS "SOURCES:" ${SOURCES})//
//
//# Для Windows ОС включаем файлы ресурсов//
//#message (STATUS "SRC:" ${SRC})//
//if(WIN32)//
// set(SRC ${SRC} ${SOURCE_ROOT}/resource.rc)//
//endif(WIN32)//
//
//# Включаем дополнительные файлы в проект//
//# MainFrameBase.fbp - проект wxFormBlocks//
//#set(SRC ${SRC} ${SOURCE_ROOT}/MainFrameBase.fbp
${SOURCE_ROOT}/wxsmith/MainFrameBase.wxs ${SOURCE_ROOT}/wx_pch.h)//
//
//# Создание группы файлов ???//
//#source_group ("Headers" FILES ${HEADERS})//
//#source_group ("Source Files" FILES ${SOURCES})//
//
//#Подключаем wxWidgets//
//find_package(wxWidgets COMPONENTS aui adv core base REQUIRED)//
//if(wxWidgets_FOUND)//
// INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS})//
// include(${wxWidgets_USE_FILE})//
//endif ()//
//
//include_directories(${DEBEA_ROOT})//
//link_directories(${DEBEA_LIB})//
//
//set (REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${wxWidgets_LIBRARIES})//
//message (STATUS lib: ${wxWidgets_LIBRARIES})//
//# Собираем исполняемый файл с именем my_program.//
//#add_executable( ${BIN} WIN32 ${SOURCES})//
//add_library(dba STATIC IMPORTED)//
//set_property(TARGET dba PROPERTY IMPORTED_LOCATION
${DEBEA_LIB}/libdba.a)//
//add_executable( ${BIN} WIN32 ${SOURCES} ${SRC})//
//# Компонуем собранную программу с необходимыми динамическими
библиотеками.//
//#target_link_libraries(${BIN} ${wxWidgets_LIBRARIES})//
//target_link_libraries( ${BIN} ${REQUIRED_LIBRARIES} dba)/|
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150423/01484aa5/attachment.html>
More information about the CMake
mailing list