Как настроить проекты NAR Maven?

я пытаюсь Mavenize проект C ++ с nar-maven, на Windows с MSVC. Это общая библиотека.
Я уже успешно протестировал Nar-Maven на примерах проектов с этим образец.

Так что теперь мне нужно использовать Нар-Maven-плагин для большего проекта. Для успешной компиляции мне нужно добавить несколько аргументов (включая libs, определения препроцессора …). И вот где я застрял. Вот пример моего текущего файла POM:

<project>

...

<properties>
<skipTests>true</skipTests>
</properties>

<build>
<defaultGoal>integration-test</defaultGoal>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.5.0</version>
<extensions>true</extensions>
<configuration>
<options>
<option>/D_WINDOWS</option>
<option>/D_WINDLL</option>
<option>...</option>
</options>
<libraries>
<library>
<type>shared</type>
</library>
</libraries>
<tests>
<test>
<name>libblawin</name>
<link>shared</link>
</test>
</tests>

</configuration>
</plugin>
</plugins>
</build>

<dependencies>
...
</dependencies>
</project>

Независимо от того, какой параметр я добавляю (тег option, включает тег …) в тег конфигурации, он не учитывается maven. Действительно, когда я ищу командную строку, используемую для компиляции исходного файла (используя опцию -X с mvn), опции, добавленные в pom.xml, не включаются.
Командная строка, используемая maven:

Executing 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\cl' with arguments:
''
'/c'
'/nologo'
'/EHsc'
'/DNDEBUG'
'/MD'
'/GR'
'/FdD:\NAR-projects\srt\target\nar\obj\amd64-Windows-msvc\'
'/DWIN32'
'/ID:\NAR-projects\srt\target\nar\obj\amd64-Windows-msvc'
'/ID:\NAR-projects\srt\target\nar\obj\amd64-Windows-msvc'
'/ID:\NAR-projects\srt\src\main\include'
'/IC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include'
'/IC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include'
'/IC:\Program Files (x86)\Windows Kits\8.1\Include\shared'
'/IC:\Program Files (x86)\Windows Kits\8.1\Include\um'
'/IC:\Program Files (x86)\Windows Kits\8.1\Include\winrt'
'/FoD:\NAR-projects\srt\target\nar\obj\amd64-Windows-msvc\libraryExtern.1d1757c3.obj'
'include/interapp/libraryExtern.cpp'

Во всяком случае, я думаю, что я делаю что-то не так, и я надеюсь, что вы можете помочь. Мне нужно найти способ настроить свой проект так, как я хочу.

0

Решение

Я догадался.

Я просмотрел рабочие примеры чтобы увидеть, где была моя ошибка, и на этом конкретном примере, ImageJ-пусковая, мы можем видеть, что он добавляет всю конфигурацию компилятора внутри с тегом :

            <configuration>
<c>
<name>gcc</name>
<includes>
<include>**/*.c</include>
</includes>
<options>
<option>-DLAUNCHER_VERSION="${project.version}"</option>
<option>-DBUILD_NUMBER="${buildNumber}"</option>
<option>-I${JAVA_HOME}/include</option>
<option>${java.os.include}</option>
<option>${stack.protector.option}</option>
<option>${architecture.option}</option>
<option>${subsystem.option}</option>
<option>${debug.option}</option>
</options>
</c>
...

Так что я просто добавил CPP пометить и поставить мои параметры в нем, и теперь он работает нормально:

    <configuration>
<cpp>
<options>
<option>/D_WINDOWS</option>
<option>/D_WINDLL</option>
<option>...</option>
</options>
</cpp>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]