Конфигурация выходного каталога CodeLite cmake

У меня есть небольшая проблема с настройкой выходных путей в настройках проекта. Я бы хотел, чтобы CodeLite поместил двоичные файлы в папку с именем на основе конфигурации и внутри папки с именем bin в ней, но я не могу заставить его работать. Я просто изменил все пути и имена файлов, которые мог, в общих настройках проекта (я использовал исключительно макросы, такие как $(ProjectPath) и т. д.), и после запуска CMake он всегда помещает все в папку с именем cmake-build-Configuration (Debug или Release). ). Я МНОГО гуглил, может быть, я просто не могу найти нужную поисковую фразу, я также просматривал Вики, но не смог найти там ничего, что могло бы указать мне правильное направление. Мой CMakeLists.txt для проекта выглядит так:

# -*- CMakeLists.txt generated by CodeLite IDE. Do not edit by hand -*-

cmake_minimum_required(VERSION 2.8.11)

project(main)

# Define some variables
set(PROJECT_PATH "${CMAKE_SOURCE_DIR}/main")



#{{{{ User Code 1
# Place your code here
#}}}}

include_directories(
    .
    .

)


# Compiler options
add_definitions(-ggdb)
add_definitions(-O0)
add_definitions(-Wall)
add_definitions(-std=c++14)

# Linker options


if(WIN32)
    # Resource options
endif(WIN32)

# Library path
set(CMAKE_LDFLAGS "${CMAKE_LDFLAGS} -L. ")

# Define the CXX sources
set ( CXX_SRCS
    ${CMAKE_SOURCE_DIR}/main/src/main.cpp
)

set_source_files_properties(
    ${CXX_SRCS} PROPERTIES COMPILE_FLAGS
    " -ggdb -O0 -Wall -std=c++14")

if(WIN32)
    enable_language(RC)
    set(CMAKE_RC_COMPILE_OBJECT
        "<CMAKE_RC_COMPILER> ${RC_OPTIONS} -O coff -i <SOURCE> -o <OBJECT>")
endif(WIN32)



#{{{{ User Code 2
# Place your code here
#}}}}

add_executable(main ${RC_SRCS} ${CXX_SRCS} ${C_SRCS})
target_link_libraries(main ${LINK_OPTIONS})



#{{{{ User Code 3
# Place your code here
#}}}}

а это CMakeLists.txt для рабочей области:

# -*- CMakeLists.txt generated by CodeLite IDE. Do not edit by hand -*-

cmake_minimum_required(VERSION 2.8.11)

# Workspace name
project(YoLoEngine)

# This setting is useful for providing JSON file used by CodeLite for code completion
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

# Set default locations
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)



#{{{{ User Code 1
# Place your code here
#}}}}

set(CONFIGURATION_NAME "Debug")



#{{{{ User Code 2
# Place your code here
#}}}}

# Projects
add_subdirectory(${CMAKE_SOURCE_DIR}/main)


#{{{{ User Code 3
# Place your code here
#}}}}

Я должен отметить, что у меня очень и очень ограниченные знания о CMake, я только начал учиться его использовать сегодня, и некоторые вещи мне не ясны. Я не пытался манипулировать указанными выше файлами вручную, потому что хотел знать, как настроить вещи внутри CodeLite.

Я использую Ubuntu 18.04 LTS, я скачал CodeLite с apt из репозитория Ubuntu, и его версия 10.0.0.

Спасибо за помощь :)

Изменить 1: я хотел бы настроить это с помощью пользовательского интерфейса CodeLite, а не путем изменения файлов CMakeLists.txt.


person YoFreakinLo    schedule 23.06.2018    source источник


Ответы (1)


Я предлагаю использовать этот метод для копирования вашего двоичного выходного файла по некоторому адресу:

после add_executable(...) просто добавьте это:

set_target_properties(main PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/YOUROUTPUT)

вместо YOUROUTPUT вы можете поместить некоторую переменную cmake, такую ​​​​как имя вашего проекта.

person Morteza Sherafati    schedule 23.06.2018
comment
Спасибо за ваш ответ, но я хотел бы настроить это с помощью пользовательского интерфейса CodeLite. Я отредактирую свой вопрос, чтобы убрать это :) Я сохраню ваш ответ и выберу его как принятый, если я не получу более близких. - person YoFreakinLo; 25.06.2018