Как сделать проект, написанный с Tcl в CMake? - PullRequest
0 голосов
/ 22 марта 2019

Я использую cmake версии 3.14.0-rc3 для создания своих кодов.Когда я нацеливаю любой код, написанный на C или C ++ в моем CMakelist.txt, следующим образом, он работает красиво и создает исполняемый файл.не удается, и я получаю следующую фатальную ошибку:

Фатальная ошибка при создании сценария tcl с помощью cmake

Может кто-нибудь помочь мне решить эту проблему?Кажется, что cmake обычно не может скомпилировать Tcl-скрипты.

Заранее благодарен за ваши добрые ответы и помощь.

Bests, Daryon

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Вы должны остерегаться другого пути, например, запускать пользовательские команды или добавлять собственные цели в ваш проект CMake.Боюсь, вы путаете природу библиотек, исполняемых файлов и внешних команд в контексте CMake.

Я думаю, что должен быть способ выполнения сценариев Tcl с помощью CMake.

Возможно, вы захотите попробовать следующее: В CMakeLists.txt вы определяете пользовательскую цель MyTarget, которая вызывает исполняемый файл TCLSH, если доступно:

CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
PROJECT (HELLO)

find_program (TCLSH tclsh)

if (TCLSH) 
add_custom_target(
  MyTarget ALL
  COMMAND TCLSH myScript.tcl
)
endif (TCLSH)

(1) find_program и if/endif сделают пользовательскую цель доступной только при условии, что найден исполняемый файл с именем tclsh.

(2) myScript.tcl - это сценарий Tcl в вашем проектеdirectory.

(3) Запуск cmake . && make будет эффективно вызывать: tclsh myScript.tcl, производя:

$cmake . && make
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/hello
This is a message written by Tcl scripts
Built target MyTarget

Это только для начала, вам придется прочитатьбольше о добавлении команд, целей или выполнении подпроцессов из CMake.

0 голосов
/ 22 марта 2019

Спасибо за ваш ответ. Пожалуйста, посмотрите на следующий CMakelist.txt, а также на простую команду put, написанную на Tcl, которая должна быть сделана с помощью cmake и выполнена.

Cmakelist.txt

    CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
    PROJECT (HELLO)
    ADD_LIBRARY(hello_world STATIC $hello_world.tcl.in)
    SET_TARGET_PROPERTIES(hello_world PROPERTIES LINKER_LANGUAGE TCL)
    ADD_EXECUTABLE(hello hello_world.tcl.in)

hellow_world.tcl.in

puts "This is a message written by Tcl scripts"

Я обнаружил, что есть некоторые определенные расширения файлов, которые CMake может распознать. Пожалуйста, смотрите рисунок ниже, который сообщается с сообщением об ошибке: cmake допускает только определенные расширения файлов

Я создал новую папку, такую ​​как build, внутри которой в linux-терминале я написал cmake ... но я получаю сообщение об ошибке, показанное выше.

Я думаю, что должен быть способ выполнить сценарии Tcl с CMake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...