Сборка библиотек Poco C++ в Windows из командной строки

Я разработал скрипт Python для создания набора зависимостей, которые мне нужны для моего проекта. Среди них Поко.

В OS X и Linux я использую cmake для сборки Poco, и моей первой мыслью было сделать то же самое для Windows. Однако кажется, что конвейер cmake не поддерживается в Windows (или я делаю что-то не так), что приводит меня к моему вопросу; как мне собрать Poco для Windows из командной строки?


person JBarberU    schedule 21.05.2015    source источник


Ответы (1)


Для Windows вы найдете предварительно настроенные сценарии для создания POCO с использованием конкретной версии компилятора VS, т. е. build_vs120.cmd или универсальной версии buildwin.cmd, которую вы можете настроить в соответствии с тем, что вам нужно:

C:\dev\workspace\poco-1.6.0>buildwin.cmd
Usage:
------
buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
VS_VERSION:    "90|100|110|120"
ACTION:        "build|rebuild|clean"
LINKMODE:      "static_mt|static_md|shared|all"
CONFIGURATION: "release|debug|both"
PLATFORM:      "Win32|x64|WinCE|WEC2013"
SAMPLES:       "samples|nosamples"
TESTS:         "tests|notests"
TOOL:          "devenv|vcexpress|wdexpress|msbuild"

Default is build all.

ПРИМЕЧАНИЕ. Возможно, вам потребуется загрузить исходные коды для Windows.

Изменить: кажется, что в Windows нет эквивалента установки для использования сценария пакетной сборки. Чтобы имитировать установку Linux, нужно объединить все папки include в одну, поэтому в основном скопируйте папки include из Foundation, JSON, Net, Util, XML и т. д. в одно место, перезаписав их. Все папки, кроме Foundation, которая является основным пространством имен Poco, имеют структуру: {Name}/include/Poco/{Name}, т. е. Util/include/Poco/Util, поэтому они объединятся без проблем. В результате должна получиться следующая структура: include/Poco/* Это также должно быть легко написать скрипт.

person doqtor    schedule 21.05.2015
comment
Круто, проверю, как только будет возможность. - person JBarberU; 27.05.2015
comment
В настоящее время у меня есть частичное решение с использованием приведенного выше сценария, который отлично подходит для создания файлов *.lib и *.dll. Кажется, я не получаю результирующую включаемую папку, которую я делаю при запуске cpack в системах * nix. Каким будет правильный способ получить это? - person JBarberU; 01.06.2015
comment
@JBarberU Я отредактировал свой ответ, в котором объяснил, как вы можете подготовить результирующую включаемую папку. - person doqtor; 01.06.2015
comment
Получил работу, используя вышеупомянутый скрипт и вручную скопировав включаемые файлы из моего скрипта Python для упаковки. Я использовал файл компонентов, чтобы выбрать подходящие подкаталоги для включения. - person JBarberU; 03.06.2015