Сборка библиотеки fortran с waf, установка файла .mod - PullRequest
3 голосов
/ 25 ноября 2011

Я использую waf (http://code.google.com/p/waf/) для создания библиотеки на языке фортран (которая также использует некоторый c-код).

Соответствующий wscript выглядит так:

 def build(bld):

    bld(
            features = 'fc',
            source   = 'fortran_interface.f90',
            target   = 'fortran_interface.o')
            #install_path = '${PREFIX}/mod')
    #bld.install_files('${PREFIX}/mod','fortran_interface.mod')

    bld(
            features = 'c',
            includes = '../../include',
            source   = 'init_wrapper.c',
            target   = 'init_wrapper.o')

    bld(
            features = 'fc fcstlib',
            use      = 'init_wrapper.o fortran_interface.o',
            target   = 'fortran_interface',
            install_path = '${PREFIX}/lib')

Вызов wafпроизводит выглядит следующим образом:

fc: src/fortran/fortran_interface.f90 -> 
    build/src/fortran/fortran_interface.f90.1.o 
    build/fortran_interface.mod

Я хочу иметь возможность установить файл .mod на ${PREFIX}/mod. Я пробовал install_path, который не действует в этом случае, или install_files, который не работаетпотому что а) он не заглядывает внутрь директории build / и б) потому что жалуется перед сборкой, если файл отсутствует.3

1 Ответ

3 голосов
/ 27 ноября 2011

Что касается этой темы (http://groups.google.com/group/waf-users/browse_thread/thread/c771a2f4fedd4e3?pli=1) ответ должен был создать

  • отдельная группа сборки

    bld.add_group()

  • и использовать

    bld.srcnode.find_or_declare(<filename>.mod)

, чтобы заставить waf искать в каталоге сборки файл .mod.

...