
fox.cpp
29.11.2017
14:47:10
Cygwin ещё есть, но там пакетный менеджер тухлый и, кажется, MSYS — форк Cygwin.

Alexander
29.11.2017
14:48:01

Ilia
29.11.2017
14:48:10
msys2 это же такой bash под win... Он же нужен чтобы только баш и make запускать...
Какие там библиотеки -то?

fox.cpp
29.11.2017
14:48:10

Google

Alexander
29.11.2017
14:48:28

fox.cpp
29.11.2017
14:48:38
Или ручками собирать всё древо зависимостией?

Alexander
29.11.2017
14:49:30

fox.cpp
29.11.2017
14:49:36
Я тут слышал, что в их убунте пакеты староваты "немного"
CMake 2 этак.
Уже обновили до 3 хоть?

Alexander
29.11.2017
14:50:37
Уже обновили до 3 хоть?
а какая разница?))) самое главное, что есть линух и тулзы к нему. всё остальное не так важно

Kitsu
29.11.2017
14:53:27
А две разные структуры с одинаковым полей в той же последовательности гарантированно будут иметь одинаковый memory layout?

Дед Пегас
29.11.2017
14:54:27
И давльно давно.

Alexander
29.11.2017
14:55:34
да, помню о нём. но так и не добрались руки попробовать

Google

Alexander
29.11.2017
14:55:46
мб сегодня вечерм поиграюсь (лень ребутаться на винду)
http://cpp-russia.ru/?p=1436

Kitsu
29.11.2017
15:03:24
нет
Можно пример? Ну или это стандарт, а на практике редкость?

Alexander
29.11.2017
15:04:12
а пример - ну можешь поиграться здоровой структурой здоровой на разных компиляторах ?

Kitsu
29.11.2017
15:06:51
Ога, спасибо

Павел
29.11.2017
17:38:42
всем здрасти, хотел бы задать вопросы по CMake, что такое package и чем он отличается от library? Вопрос возник из-за того что в дефолтном цмейке у меня работает find_package(CURL REQUIRED), а вот find_package(SQLITE3 REQUIRED) не работает. Я пока выкрутился через find_library(SQLITE3 REQUIRED) но мне кажется что это как-то не совсем правильно. Не эстетично выглядит да и я своими кривыми ручками дописывал там вручную - set(SQLITE3_LIBRARY "-lsqlite3"), а вот CURL без такой писанины подключился и нормально линкуется.


Bogdan
29.11.2017
17:43:09
find_package ищет в CMAKE_MODULE_PATH Find*.cmake, где * это название библиотеки. можно прописать свою папку, туда пилить свои зависимости. в симейке еще есть готовые cmake файлы для поиска популярных либ, например OpenSSL.
например find_package(OpenSSL) найдёт переменные
OPENSSL_FOUND - system has the OpenSSL library
OPENSSL_INCLUDE_DIR - the OpenSSL include directory
OPENSSL_LIBRARIES - The libraries needed to use OpenSSL
OPENSSL_VERSION - This is set to $major.$minor.$revision$path (eg. 0.9.8s)
которые уже можно использовать в add_library
find_package(OpenSSL REQUIRED)
add_library(sha2_openssl
sha512.c
)
target_link_libraries(sha2_openssl
${OPENSSL_CRYPTO_LIBRARY}
)
target_include_directories(sha2_openssl PUBLIC
${OPENSSL_INCLUDE_DIR}
)
лучше читать доки, у симейка они очень хорошие
find_package внутри делает
find_library (для .so, .dll, .dylib)
find_program (для бинарей)
find_path (для хедеров)


Павел
29.11.2017
17:44:56
дада, я вроде об этом прочитал и очень удивился. Потому что библиотека SQLITE3 очень популярна, но по умолчанию она не ищется цмейком, как например ищется CURL. Если что у меня ОС - убунту, библиотеки ставил через apt, возможно это важно. Но я через apt ставил нужные мне зависимости.
по умолчанию SQLITE3 не ищется через find_package

Bogdan
29.11.2017
17:45:44
ну значит в симейк не написали для него FindSQLITE3.cmake
точнее kitware
или кто там его разрабатывает

Павел
29.11.2017
17:46:43
в гуглах валяются всякие FindSQLITE3.cmake, но я бы хотел делиться своим проектом и что б у всех всё работало. Для CURL всё готово и получается что работает, а вот для SQLITE3 на удивление не работает.

Bogdan
29.11.2017
17:46:49
https://github.com/Kitware/CMake/tree/master/Modules

Google

Bogdan
29.11.2017
17:46:52
вот всё что есть
всё что начинается с Find ищется через find_package

Павел
29.11.2017
17:48:06
ага, спасибо большое. Выходит дефолтные конфиги cmake не дадут мне разгуляться ....

Bogdan
29.11.2017
17:48:12
можешь написать свой Findsqlite3.cmake и сделать пулл реквест :)

Павел
29.11.2017
17:48:35
зачем же писать - в гитхабе есть готовые, чужие
странно что для таких распространённых вещей этого ещё не было в cmake
jsoncpp, sqlite3, gumbo
удивительно что для curl сделали :D

Bogdan
29.11.2017
17:51:05
>find_library(SQLITE3 REQUIRED) но мне кажется что это как-то не совсем правильно
скрипты внутри Find*.cmake именно так и делают
просто для юзера оборачивают в переменные

Viacheslav
29.11.2017
18:29:16
Это раньше они так делали. Сейчас вроде как поддерживает pkgconfig.
Что, по моему мнению, гораздо чище получается.

Viacheslav
29.11.2017
18:30:16
К сожалению, документации по CMake кот наплакал.
https://www.reddit.com/r/cpp/comments/6fv0bh/cnow_2017_daniel_pfeifer_effective_cmake_pdf_in/
Вот тут было выступление про modern CMake.

Павел
29.11.2017
18:31:09
а что за pkgconfig? оно поможет мне подхватить SQLITE3 ?

Viacheslav
29.11.2017
18:33:30
https://packages.debian.org/stretch/amd64/libsqlite3-dev/filelist
Вот тот pc file описывает, как библиотеку использовать.
Я сам не пробовал эту фичу, но современный CMake точно умеет библиотеки подключать на основе этого файла.

Alex Фэils?︙
29.11.2017
18:40:10
@matwey_kornilov а это ты присылал фикс в C++17 по поводу функций Лежандра?

Google

Matwey
29.11.2017
18:41:04

Alex Фэils?︙
29.11.2017
18:41:34
не, го лучше пелить фикс тогда

Matwey
29.11.2017
18:45:42
Ну вернее сначала я защищал дисер, а потом мне стало лень... Нужно проверить актуальность и переработать текст предложения в удобоваримый вид.

Berkus
29.11.2017
18:47:40

Павел
29.11.2017
18:48:47
да то понятно, спасибо за помощь ещё раз. Если я к себе закину туда доп модулей то передав проект кому-то другому - он тоже обнаружит что у него модулей то тютю, не хватает
и ему прийдётся их тоже к себе руками втягивать
в общем буду разбираться. Большое спасибо за помощь всем

Berkus
29.11.2017
18:49:18

Admin
ERROR: S client not available

Павел
29.11.2017
18:49:28
дада я так и сделал

Alexander
29.11.2017
21:03:36
кто-нибудь писал плагины по Intelij IDEA платформу?

Anatoly
29.11.2017
21:08:49

Alexander
29.11.2017
21:09:05
просто чуваки с jetbrains не хотят пилить поддержку Conan
и судя по всему, придётся мне самому заняться этим. А делать этого очень не хочется, ибо под проприетарщину же пишется дело. С другой стороны, штука крайне полезная
если кто найдёт чувака, который хочет написать что-то полезное и любит джаву, то шлите на меня сразу

Anatoly
29.11.2017
21:12:38
Я могу поговорить с Анастасией Казаковой, она, если не ошибаюсь, product manager CLion. очно ее увижу 14 декабря в JB.

Alexander
29.11.2017
21:13:54

Alex Фэils?︙
29.11.2017
21:22:13

Alexander
29.11.2017
21:22:33

Google

Alexander
29.11.2017
21:22:42
с другой стороны, хороший кандидат)

Alex Фэils?︙
29.11.2017
21:22:55
(Он тут в чате есть)

Baruch
29.11.2017
21:23:04
Есть, да

Alex Фэils?︙
29.11.2017
21:23:23
Привет) извини, что поздно так пинганул)

Evgeniy
29.11.2017
21:23:30
уверен что jetbrains пилить не будут

Baruch
29.11.2017
21:23:41
Conan plugin для IntelliJ?

Alex Фэils?︙
29.11.2017
21:24:42
да, было б неплохо
Надо вместе пилить, кмк. можно ща репу на гх создаьь

Egor
29.11.2017
21:25:05
Почему тут такое токсичное комьюнити?

Baruch
29.11.2017
21:25:06
Ok, займемся

Alex Фэils?︙
29.11.2017
21:25:14

Baruch
29.11.2017
21:25:22
Я поговорю с jetbrains

Alexander
29.11.2017
21:28:04
будем бомбить со всех сторон)
https://blog.jupyter.org/interactive-workflows-for-c-with-jupyter-fe9b54227d92
Старое, но всё же
http://btorpey.github.io/blog/2016/04/07/mo-static/
https://blogs.msdn.microsoft.com/vcblog/2017/11/15/msvc-conformance-improvements-in-visual-studio-2017-version-15-5/
https://www.viva64.com/en/b/0539/

Ilia
30.11.2017
04:46:40