2010-04-26 2 views

ответ

1

Учитывая, что вы используете GTK 2.20.0 (то есть версия> = 2), вы должны использовать GTK2 вместо GTK. Но, если FindGTK2 имеет ту же проблему, вы можете использовать find_path для поиска файлов заголовков, и вы можете использовать find_library для поиска связанных файлов библиотеки. Объединяя их, вы можете создать символы GTK2_FOUND, GTK2_LIBRARIES и GTK2_INCLUDE_DIRS, которые он должен произвести. Вы можете найти мой файл FindUnitTestPlusPlus.cmake немного полезный; он использует «FindPackageHandleStandardArgs», который заботится о подробных подробных сведениях о том, что вы не сработаете, если библиотека там не указана, и указан флаг REQUIRED. К сожалению, документации по созданию пользовательских модулей FindXYZ.cmake действительно не так много; однако, я думаю, вы должны иметь возможность взломать что-то вместе с существующими модулями.

Другой вариант - обратиться к разработчику этого конкретного модуля. A list of CMake find module maintainers можно найти по ссылке. Филип Лоуман - популярный парень для модуля FindGTK2.

+0

Я решил написать 'FindGTK2.cmake' сам, но как я могу перезаписать встроенный, не удаляя или не заменяя его собственным файлом? – Gtker

+0

@ Runner, вы можете установить переменную CMAKE_MODULE_PATH, чтобы указать на папку, в которой находится ваш собственный файл FindGTK2.cmake; CMake ищет CMAKE_MODULE_PATH перед папкой по умолчанию. –

+0

писать «FindGTK2.cmake» сложнее, чем я думал ... Как я могу просто вручную включить заголовок и библиотеку gtk2 вместо написания «FindGTK2.cmake»? – Gtker