powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / cmake and dojo
3 сообщений из 3, страница 1 из 1
cmake and dojo
    #39150690
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hello everybody !
я тут делаю кое что на с++ и собираю это дело cmake.. так вот, у меня там есть цель, runtime (add_custom_target), там я собираю рантайм окружение для web. закачиваю туда пару библиотек, в том числе dojo. делаю это так

Код: cmake
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
#следующие две строки в CMakeLists.txt
set(dojo_version "1.10.4" CACHE STRING "dojo version in three numbers: 1.10.4 for example")
set(sockjs_version "1.0.3" CACHE STRING "sockjs version in three numbers: 1.0.3 for example")

# дальше все в cmake/runtime.cmake
set(dojo_result_dir "dojo-lib")
set(dojo_lib_path  "${shared_media_dir}/${dojo_result_dir}/dojo")
set(dojo_file_path "${dojo_lib_path}/dojo.js")
set(dojo_release "release-${dojo_version}")

add_custom_command(OUTPUT "${shared_media_dir}/dojo-${dojo_release}.tar.gz"
    DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/runtime.cmake"
            "${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_dojo.cmake"
    COMMAND ${CMAKE_COMMAND} -Ddown_dir="${shared_media_dir}" -Ddojo_release="${dojo_release}" -Ddojo_releasef="${dojo_release}"
                             -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_dojo.cmake
    )
add_custom_command(OUTPUT "${dojo_file_path}"
    DEPENDS "${shared_media_dir}/dojo-${dojo_release}.tar.gz"
    COMMAND ${CMAKE_COMMAND} -E tar -xf "dojo-${dojo_release}.tar.gz"
    COMMAND ${CMAKE_COMMAND} -E remove_directory "${dojo_result_dir}"
    COMMAND ${CMAKE_COMMAND} -E rename "dojo-${dojo_release}" "${dojo_result_dir}"
    WORKING_DIRECTORY "${shared_media_dir}"
    )

add_custom_target(runtime ALL
    DEPENDS "${dojo_file_path}" 
    )


а вот файл cmake/download_dojo.cmake

Код: cmake
1.
2.
3.
4.
set( output_file_name "${down_dir}/dojo-${dojo_releasef}.tar.gz")

if(NOT EXISTS "${output_file_name}")
    file(DOWNLOAD "http://download.dojotoolkit.org/${dojo_release}/dojo-${dojo_releasef}.tar.gz" "${output_file_name}")
endif(NOT EXISTS "${output_file_name}")


проблема - каждый раз при make оно пытается закачать библиотеку заново. а я хочу, чтобы перекачивал он библиотеку только если я в cmake файле укажу другу версию.
в чем может быть проблема?

ps: не знаю куда надо постить вопрос :) наверное сюда :)
...
Рейтинг: 0 / 0
cmake and dojo
    #39152344
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, cmake вобще учитывает что я написал о зависимостях в add_custom_command? а то такой надписи, что идет сканирование зависимостей не появляется когда компилирую.
...
Рейтинг: 0 / 0
cmake and dojo
    #39169877
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот, я тут сам с собой поговорю :)
кому интересно, причина была в том, что когда архив распаковывается, время файла не меняется. так что нужно сделать -E touch_nocreate, чтобы так не было.

и зависимости от cmake файлов делать не нужно.. ну, от тех, которые включены в основной файл. я так сделал, чтобы при их изменении, перекачать файл, он он и так перекачается, потому что имя будет другое..
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / cmake and dojo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]