2016-07-20 7 views
0

私はをMavenizeにしようとしています WindowsでMSVCを使用しているnar-mavenを持つC++プロジェクトです。これは共有ライブラリです。
サンプルプロジェクトのnar-mavenをこのarchetypeで正常にテストしました。
NAR Mavenプロジェクトを設定するには?

これで、より大きなプロジェクトにはnar-maven-pluginを使用する必要があります。正常にコンパイルするために、いくつかの引数(インクルード、libs、プリプロセッサの定義...)を追加する必要があります。そして、これは私が立ち往生している場所です。

<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> 

私は構成タグ内(オプションタグ、タグが含まれています...)を追加、それは達人で考慮されていないものは何でもパラメータ:ここに私の現在のポンポンファイルのサンプルです。実際、ソースファイルをコンパイルするために使用するコマンドライン(mvnで-Xオプションを使用)を探すと、pom.xmlに追加されたオプションは含まれません。達人が使用する
コマンドライン:

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' 

はとにかく、私は私が何か間違ったことをやっていると思う、と私はあなたが助けることができると思います。私が望むように私のプロジェクトを構成する方法を見つける必要があります。

答えて

1

私は考えました。だから、

  <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> 
      ... 

私は私のミスだった場所を確認するために、working examplesを閲覧し、この特定の例で、imagej-launcher、我々はそれがCタグ内のすべてのコンパイラの設定を追加していることがわかります私はちょうどのcppタグを追加し、それに私のオプションを入れて、今それは正常に動作します:

<configuration> 
     <cpp> 
      <options> 
       <option>/D_WINDOWS</option> 
       <option>/D_WINDLL</option> 
       <option>...</option> 
      </options> 
     </cpp> 
関連する問題