Bug 16566 - отсутствует mono-cecil
: отсутствует mono-cecil
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/mono)
: unstable
: all Linux
: P2 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-08-05 19:47 by
Modified: 2009-01-19 19:56 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-08-05 19:47:44
http://mono-project.com/Cecil
Мне б для сборки kde-шных биндингов пакет mono-cecil поиметь, чтоб заработала
команда
pkg-config mono-cecil --variable=assemblies_dir
------- Comment #1 From 2008-08-06 12:06:21 -------
Я специально модифицировал сборку mono, что бы cecil собирался из него, а не
отдельным пакетом. присутствует /usr/lib/pkgconfig/cecil.pc. Если он не
устраивает или в нём чего-то не хватает или надо обновить - сделаю, не вопрос.
Посмотри на него с начала.
------- Comment #2 From 2008-08-20 16:37:37 -------
Нужно чтоб отработало на выбор
pkg-config mono-cecil --variable=assemblies_dir
или
pkg-config cecil --variable=assemblies_dir
KDE4 по ней определяет наличие cecil и записывает результат в переменную для
дальнейшего использования.
------- Comment #3 From 2008-08-20 19:00:13 -------
в том и дело, что эта переменная нужна, если cecil установлен в нестандартные
пути (хотя конечно можно считать что это у нас нестандартный cecil, хотя
установлен стандартно). У нас cecil нормально находится через GAC.
В csharp/CMakeLists.txt определяется наличие cecil и этого достаточно.
Мне не понятно, почему макрос MACRO(INSTALL_GAC target) в
cmake/modules/CSharpMacros.cmake - это же установка любых mono библионек(я
правильно понял?) - основывется на cecil. Я думаю, переменные, куда
устанавливать, должны вычислятся как-то иначе, на базе mono.pc например, или
libdir например.

в cmake/modules/CSharpMacros.cmake должно быть что-то типа этого.
(обрати внимание - я подставил абсолютные пути вместо переменных - какие они
должны быть в cmake не знаю)


МACRO(INSTALL_GAC target)
    GET_CS_LIBRARY_TARGET_DIR()

    IF(NOT WIN32)
        INCLUDE(FindPkgConfig)
        PKG_SEARCH_MODULE(MONO_CECIL mono-cecil)

        PKG_SEARCH_MODULE(CECIL cecil)

        if(CECIL_FOUND OR MONO_CECIL_FOUND)

#!!!  ${CMAKE_CURRENT_BINARY_DIR} - должен быть /usr/lib (%_libdir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${GACUTIL_EXECUTABLE} -i
${CS_LIBRARY_TARGET_DIR}/${target}.dll -package 2.0 -root
${CMAKE_CURRENT_BINARY_DIR})")
            MAKE_DIRECTORY(${CMAKE_CURRENT_BINARY_DIR}/mono/)
#!!! ${GAC_ASSEMBLY_DIR} - должен быть /usr/lib/mono/gac (%_monogacdir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mono/ DESTINATION
${GAC_ASSEMBLY_DIR} )
        endif(CECIL_FOUND OR MONO_CECIL_FOUND)
    ELSE(NOT WIN32)
        INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${GACUTIL_EXECUTABLE} -i
${CS_LIBRARY_TARGET_DIR}/${target}.dll -package 2.0)")
    ENDIF(NOT WIN32)

ENDMACRO(INSTALL_GAC target)
------- Comment #4 From 2008-08-20 19:22:08 -------
(In reply to comment #3)
> #!!! ${GAC_ASSEMBLY_DIR} - должен быть /usr/lib/mono/gac (%_monogacdir)
Меня устроит этот макрос.
Единственное, если у кого-то еще придется патчить, удобнее в 1-м месте.
------- Comment #5 From 2008-08-20 19:25:57 -------
Кстати, в /usr/lib/pkgconfig/cecil.pc относительные пути написаны.
------- Comment #7 From 2008-08-20 23:51:18 -------
@prefix@/lib/mono на @libdir@/mono менять не надо - у нас используется именно
@prefix@/lib/mono.
или ты про что хотел сказать предыдущей ссылкой?
------- Comment #8 From 2008-08-21 16:16:43 -------
(In reply to comment #7)
> или ты про что хотел сказать предыдущей ссылкой?
1. Что у них есть assemblies_dir в .pc
2. Что это может помочь поправить относительные пути (я ж не вдавался в
подробности)
------- Comment #9 From 2008-08-22 12:55:02 -------
Оказывается, у нас специально убирается assemblies_dir
http://sisyphus.ru/srpm/Sisyphus/mono/patches/1
Исправьте, пожалуйста.
------- Comment #10 From 2008-08-22 13:42:05 -------
Коллеги,
проблема, как я вижу, выглядит так:
0. Cecil ещё пока официально не публичный, но в Альте мы впереди паровоза. Я
уверен, что для этого есть свои причины.
1. Сторонние программы думают, что Cecil не публичный, поэтому хотят видеть
assemblies_dir

Моё предложение:
а чего бы им не дать 
assemblies_dir=@prefix@/lib/mono/2.0
?
------- Comment #11 From 2009-01-04 20:40:16 -------
Шабалин, с Новым Годом!
ping!
P.S. Хочешь, на тебя перевешаю?
------- Comment #12 From 2009-01-04 21:34:26 -------
да, я её возьму себе.(а то забыл совсем про неё).
С новым годом всех! :)
------- Comment #13 From 2009-01-19 18:09:28 -------
kde-шных биндингов в сизифе.
------- Comment #14 From 2009-01-19 19:56:36 -------
В 4.1 тоже