Size: a a a

2018 December 28

DM

Dmitry Marakasov in freebsd_ru
Пишите баги в апстрим. Так-то gtk3 посимпатичнее будет
источник

A

A in freebsd_ru
Кто может подсказать по вот какой задаче. Написал порт для своей программы, сборка и установка программы через cmake делается. Программу нужно установить с созданием нескольких симлинков на бинарник. Как правильно в портах симлинки создавать?
источник

A

A in freebsd_ru
Я так понял, что если я создаю их в do-install, то нужно тогда всю установку в do-install делать.
источник

A

A in freebsd_ru
А можно ли как-то сделать так, чтобы после завершения их создать?
источник

m

morihaos in freebsd_ru
https://www.freebsd.org/doc/en/books/porters-handbook/special.html
часть директив можно в pre-install, часть в do-install, что-то можно в post-install, ниже там и про симлинки написано…
источник

A

A in freebsd_ru
morihaos
https://www.freebsd.org/doc/en/books/porters-handbook/special.html
часть директив можно в pre-install, часть в do-install, что-то можно в post-install, ниже там и про симлинки написано…
Спасибо, сейчас поизучаю.
А это нормально, что ни переменных cmake, ни в переменных окружения нет информации, куда делается stage?
источник

AF

Andrey F in freebsd_ru
делается она в work
источник

AF

Andrey F in freebsd_ru
а зачем она симейку?
источник

A

A in freebsd_ru
Andrey F
а зачем она симейку?
Ну вот была идея, но когда я её обдумал, то понял, что идея так себе. Так что и не нужна она.
источник

DM

Dmitry Marakasov in freebsd_ru
${LN} же
источник

DM

Dmitry Marakasov in freebsd_ru
Только этим должен ваш cmake вообще-то заниматься а не порт
источник

A

A in freebsd_ru
Dmitry Marakasov
Только этим должен ваш cmake вообще-то заниматься а не порт
Вот я и пытался разобраться как сделать так, чтобы cmake делал все нужные вещи.
Сделал это всё в порте, в целом норм, но хотелось бы конечно, в cmake это сделать.
источник

DM

Dmitry Marakasov in freebsd_ru
Разобраться как делать в cmake и сделать в порте как-то не вяжется. Как в cmake делать симлинки при инсталляции я не помню, гуглите. А в порте, при нормальной системе сборки, не должно быть ничего кроме зависимостей и возможно опций
источник

A

A in freebsd_ru
Dmitry Marakasov
Разобраться как делать в cmake и сделать в порте как-то не вяжется. Как в cmake делать симлинки при инсталляции я не помню, гуглите. А в порте, при нормальной системе сборки, не должно быть ничего кроме зависимостей и возможно опций
Вот я сначала гуглил, пробовал и сходу не получилось. Решил временно сделать в порте.
источник

DM

Dmitry Marakasov in freebsd_ru
источник

DM

Dmitry Marakasov in freebsd_ru
Второй ответ
источник

A

A in freebsd_ru
Это я видел, пробовал, не работает. У меня после апдейта до 12 много чего не работает. Так что я уже даже перестал вникать в причины до полной переустановки.
источник

DM

Dmitry Marakasov in freebsd_ru
Вообще оно кривое. Там нужно DESTDIR обрабатывать но непонятно как. Короче, я бы вот так сделал (это работает):
project(test)
 
add_executable(hello hello.c)
add_custom_command(TARGET hello COMMAND POST_BUILD ${CMAKE_COMMAND} -E create_symlink hello hello1)
add_custom_command(TARGET hello COMMAND POST_BUILD ${CMAKE_COMMAND} -E create_symlink hello hello2)

install(TARGETS hello DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/hello1 DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/hello2 DESTINATION bin)

при сборке создаются симлинки (и, кстати, их уже можно использовать, при тестировании например), потом устанавливаются обычным образом
источник

DM

Dmitry Marakasov in freebsd_ru
если их дофига можно ещё и в макрос обернуть, но я бы лучше использовал command idiom в этом случае (как в pkg install|delete|query|update|... )
источник

A

A in freebsd_ru
Dmitry Marakasov
Вообще оно кривое. Там нужно DESTDIR обрабатывать но непонятно как. Короче, я бы вот так сделал (это работает):
project(test)
 
add_executable(hello hello.c)
add_custom_command(TARGET hello COMMAND POST_BUILD ${CMAKE_COMMAND} -E create_symlink hello hello1)
add_custom_command(TARGET hello COMMAND POST_BUILD ${CMAKE_COMMAND} -E create_symlink hello hello2)

install(TARGETS hello DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/hello1 DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/hello2 DESTINATION bin)

при сборке создаются симлинки (и, кстати, их уже можно использовать, при тестировании например), потом устанавливаются обычным образом
Сейчас попробую. Спасибо за совет!
источник