64bit - Eclipse RCP, upgrading from x32 to x64 platform: Automatic build still looks for x32 launcher plugin -


i'm upgrading rcp x32 x64.

i'm able export product within eclipse without issues when try export via automatic build doesn't work , gives me following error:

eclipse_3_7_64bit\plugins\org.eclipse.pde.build_3.7.0.v20111116-2009\scripts\productbuild\productbuild.xml:69: unable find plug-in: org.eclipse.equinox.launcher.win32.win32.x86_0.0.0. please check error log more details. 

as far understand build looking x32 version of plugin when should instead x64 version.

i read here should add this

--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502 

either did wrong or doesn't work.

this command use start build (works fine x32 builds):

""%javahome%\bin\java" -jar "%eclipse_location%\plugins\org.eclipse.equinox.launcher_1.2.0.v20110502.jar" -application org.eclipse.ant.core.antrunner -f "%build_source%\com.company.myproduct.rcp.setup\scripts\build.xml"" 

note search replaced company , product information!

build.xml

<project name="com.mytest.myproduct.rcp.build" default="buildfull">     <property file="build.properties" />       <!--         pde build company myproduct          init step          create build directories , copy plugins , features     -->     <target name="init">         <property name="respath" location="${ant.file}/../../resources"/>                <mkdir dir="${builddirectory}" />         <mkdir dir="${builddirectory}/plugins" />         <mkdir dir="${builddirectory}/features" />         <!-- default plugins -->         <copy todir="${builddirectory}/plugins">             <fileset dir="../..">                 <include name="**" />                 <exclude name="*/bin/" />                 <exclude name="*.feature/**" />                 <exclude name="*.lck" />             </fileset>         </copy>         <!-- mobile plugins -->         <copy todir="${builddirectory}/plugins">             <fileset dir="../../../company_myproduct_mobile">                 <include name="**" />                 <exclude name="*/bin/" />                 <exclude name="*.feature/**" />                 <exclude name="*.lck" />             </fileset>         </copy>         <!-- features -->         <copy todir="${builddirectory}/features">             <fileset dir="../..">                 <include name="*.feature/**" />             </fileset>         </copy>     </target>      <!--         start pde build     -->     <target name="pde-build">         <java classname="org.eclipse.equinox.launcher.main" fork="true" failonerror="true">             <arg value="-application" />             <arg value="org.eclipse.ant.core.antrunner" />             <arg value="-buildfile" />             <arg value="${eclipselocation}/plugins/org.eclipse.pde.build_${pdebuildpluginversion}/scripts/productbuild/productbuild.xml" />             <arg value="-dtimestamp=${timestamp}" />             <classpath>                 <pathelement location="${eclipselocation}/plugins/org.eclipse.equinox.launcher_${equinoxlauncherpluginversion}.jar" />             </classpath>         </java>     </target>      <!--         clean build directory     -->      <target name="clean">         <!-- <delete dir="${builddirectory}" /> -->     </target>      <target name="build" depends="clean, init, pde-build" />      <!-- =================================            target: buildfull                        ================================= -->     <target name="buildfull" depends="build" description="builds until executable version available">         <available file="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}.zip" property="buildzipok"/>         <antcall target="unzipbuildoutputandcopyexe"/>     </target>      <!-- - - - - - - - - - - - - - - - - -            target: unzipbuildoutput                                - - - - - - - - - - - - - - - - - -->     <target name="unzipbuildoutputandcopyexe" if="buildzipok">         <!-- unzip file  -->          <unzip src="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}.zip" dest="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}"/>                             <copy file="${respath}/company myproduct.exe_" tofile="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}/${archiveprefix}/company myproduct.exe"></copy>     </target>  </project> 

productbuild.xml

<project name="build product" default="main">  <!-- ===================================================================== --> <!-- global properties.  see build.properties information on --> <!-- properties callers can control. --> <!-- ===================================================================== --> <property name="allelementsfile" value="${eclipse.pdebuild.scripts}/productbuild/allelements.xml"/> <import file="${eclipse.pdebuild.scripts}/build.xml"/> <property name="pluginpath" value=""/> <property name="pluginlist" value=""/> <property name="featurelist" value=""/> <property name="includelaunchers" value="true"/> <property name="generatedbuildproperties" value=""/> <condition property="nestedinclusions" value="true">     <istrue value="${p2.gathering}" /> </condition>  <!-- ===================================================================== --> <!-- main entry point setup, fetch, generate, build etc. use --> <!-- customtargets.xml modify build behaviour. --> <!-- ===================================================================== --> <target name="main" description="the main build target">         <antcall target="prebuild" />     <antcall target="processrepos"/>     <antcall target="generatefeature"> <!-- generate feature drive fetch -->         <param name="verify" value="false"/>     </antcall>     <antcall target="fetch" />     <antcall target="generatefeature"> <!-- calling generate feature second time can pack / unpack clause fixed -->         <param name="verify" value="true"/>     </antcall>      <antcall target="generate" />      <antcall target="process" />      <antcall target="assemble" />     <antcall target="package" />     <antcall target="postbuild" /> </target>  <!-- ===================================================================== --> <!-- generate container feature based on product file                --> <!-- plugin or feature containing .product file need exist --> <!-- already, use presetup or postsetup fetch if necessary           --> <!-- ===================================================================== --> <target name="generatefeature">     <eclipse.generatefeature         featureid="org.eclipse.pde.build.container.feature"         builddirectory="${builddirectory}"         baselocation="${baselocation}"         productfile="${product}"         verify="${verify}"         pluginpath="${transformedrepolocation}${path.separator}${pluginpath}"         configinfo="${configs}"         pluginlist="${pluginlist}"         featurelist="${featurelist}"         includelaunchers="${includelaunchers}"         buildpropertiesfile="${generatedbuildproperties}"         nestedinclusions="${nestedinclusions}"         filterp2base="${filterp2base}"     /> </target>   </project> 

allelements.xml

<project name="product build allelements delegator">     <property name="defaultassemblyenabled" value="true" />     <property name="archivenameprefix" value="${buildid}"/>      <!-- ===================================================================== -->     <!-- run given ${target} on elements being built                     -->     <!-- add on <ant> task each top level element being built.             -->     <!-- ===================================================================== -->     <target name="allelementsdelegator">         <ant antfile="${generictargets}" target="${target}">             <property name="type" value="feature" />             <property name="id" value="org.eclipse.pde.build.container.feature" />         </ant>     </target>      <!-- ====================================================================== -->     <!--  default assemble target, called assemble each     -->       <!--  config if custom assemble target not defined.                    -->     <!-- following properties defined:                              -->     <!--        config : configuration being assembled eg "win32.win32.x86" -->     <!--        element: element being assembled eg "org.eclipse.sdk"       -->     <!--        assemblescriptname: assemble script called            -->     <!-- ====================================================================== -->     <target name="defaultassemble">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-${config}.zip"/>         </ant>     </target>         <!-- ===================================================================== -->     <!-- targets assemble built elements particular configurations  -->     <!-- these call generated assemble scripts (named in         -->     <!-- ${assemblescriptname}) may add pre , post processing       -->     <!-- add 1 target each root element , each configuration           -->     <!-- ===================================================================== -->     <target name="assemble.org.eclipse.pde.build.container.feature">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">             <property name="archivename" value="${archivenameprefix}.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-win32.win32.x86.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86_64" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86_64">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-win32.win32.x86_64.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.ppc" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.ppc">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-linux.gtk.ppc.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-linux.gtk.x86.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-linux.gtk.x86_64.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.linux.motif.x86" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.linux.motif.x86">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-linux.motif.x86.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.solaris.motif.sparc" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.solaris.motif.sparc">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-solaris.motif.sparc.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.solaris.gtk.sparc" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.solaris.gtk.sparc">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-solaris.gtk.sparc.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.aix.motif.ppc" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.aix.motif.ppc">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-aix.motif.ppc.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.hpux.motif.pa_risc" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.hpux.motif.pa_risc">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-hpux.motif.pa_risc.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.ppc" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.ppc">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-macosx.carbon.ppc.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.x86" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.x86">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-macosx.carbon.x86.zip"/>         </ant>     </target>      <property name="assemble.org.eclipse.pde.build.container.feature.group.group.group" value="true" />     <target name="assemble.org.eclipse.pde.build.container.feature.group.group.group">         <ant antfile="${assemblescriptname}" dir="${builddirectory}">                        <property name="archivename" value="${archivenameprefix}-group.zip"/>         </ant>     </target> </project> 

build.properties

# version of org.ecilpse.pdebuild pdebuildpluginversion=3.7.0.v20111116-2009   # version of org.eclipse.equinox.launcher equinoxlauncherpluginversion=1.2.0.v20110502  # productversion productversion=00.00test0  ############# base location ######################### # # specify directory of base under # build target located. directory should # contain rcp runtime binary want  # compile against. # #####################################################  base=//server/eclipse/eclipse_3_7_64bit  ############# eclipse location ###################### # # specify directory of eclipse installation # used execute pde build. # #####################################################  eclipselocation=//server/eclipse/eclipse_3_7_64bit  ############# product/packaging control ############# product=/ com.mytest.myproduct.rcp/myproduct.product runpackager=false  #set name of archive result product build. #archivenameprefix=  # prefix used in generated archive. archiveprefix=myproduct  # location underwhich of build output collected. collectingfolder=${archiveprefix}  # list of {os, ws, arch} configurations build.   # value '&' separated list of ',' separate triples.  example,  #     configs=win32,win32,x86 & linux,motif,x86 # default value *,*,* #configs = *, *, * configs=win32,win32,x86_64 ##& \ #   linux, gtk, ppc &\ # linux, gtk, x86 & \ #   linux, gtk, x86_64 & \ #   linux, motif, x86 & \ #   solaris, motif, sparc & \ #   solaris, gtk, sparc & \ #   aix, motif, ppc & \ #   hpux, motif, pa_risc & \ #   macosx, carbon, ppc  # default pde creates 1 archive (result) per entry listed in configs property. # setting value try cause pde create 1 output containing  # artifacts platforms listed in configs property. #groupconfigurations=true  #the format of archive. default zip created using antzip. #the list can contain configuration desired format different zip. #archivesformat=win32, win32, x86 - antzip& \ #   linux, gtk, ppc - antzip &\ #    linux, gtk, x86 - antzip& \ #   linux, gtk, x86_64 - antzip& \ # linux, motif, x86 - antzip& \ #   solaris, motif, sparc - antzip& \ #   solaris, gtk, sparc - antzip& \ #   aix, motif, ppc - antzip& \ #   hpux, motif, pa_risc - antzip& \ #   macosx, carbon, ppc - antzip  #set true if want output ready update jar (no site.xml generated) #outputupdatejars = false  #set true jnlp generation #codebase should url used root of relative urls in output. #generatejnlp=false #jnlp.codebase=<codebase url> #jnlp.j2se=<j2se version> #jnlp.locale=<a locale> #jnlp.generateofflineallowed=true or false generate <offlineallowed/> attribute in generated features #jnlp.configs=${configs}            #uncomment filter content of generated jnlp files based on configuration being built  #set true if want sign jars #signjars=false #sign.alias=<alias> #sign.keystore=<keystore location> #sign.storepass=<keystore password>  #arguments send zip executable zipargs=  #arguments send tar executable tarargs=  #control creation of file containing version included in each configuration - on default  generateversionslists=false  ############## build naming control ################ # directory build elements fetched , # build takes place. builddirectory=d:/ccviews/.myproduct2_cr_0065098_dev/java/build_00.00test0  # type of build.  used in naming build output.  typically value # 1 of i, n, m, s, ... buildtype=r  # id of build.  used in naming build output. buildid=myproductbuild  # label build.  used in naming build output buildlabel=build_output  # timestamp build.  used in naming build output timestamp=007  #the value used qualifier of plugin or feature when want override value computed pde. #the value applied plugin or features indicating build.properties, qualifier = context  #forcecontextqualifier=testi  #enable / disable generation of suffix features use .qualifier.  #the generated suffix computed according content of feature    #generatefeatureversionsuffix=true  ############# base control ############# # settings base eclipse components , java class libraries  # against building. # base location build needs compile against.  example, # in rcp app or plug-in,  baselocation should location of # installed eclipse against application or plug-in code compiled , rcp delta pack.  baselocation=${eclipselocation} #os/ws/arch/nl of eclipse specified baselocation baseos=win32 basews=win32 basearch=x86  #this property indicates whether want set of plug-ins , features considered during build limited ones reachable features / plugins being built filtereddependencycheck=false  #pluginpath list of locations in find plugins , features.  list separated platform file separator (; or :) #a location 1 of:   #- location of jar or folder plugin or feature : /path/to/foo.jar or /path/to/foo #- directory contains /plugins or /features subdirectory #- location of feature.xml, or 2.1 style plugins, plugin.xml or fragment.xml #pluginpath=  skipbase=true eclipseurl=<url eclipse download site> eclipsebuildid=<id of eclipse build get> eclipsebaseurl=${eclipseurl}/eclipse-platform-${eclipsebuildid}-win32.zip   ############# map file control ################ # section defines cvs tags use when fetching map files repository. # if want fetch map file repository / location, change getmapfiles target in customtargets.xml  skipmaps=true mapsrepo=:pserver:anonymous@example.com/path/to/repo mapsroot=path/to/maps mapscheckouttag=head  #tagmaps=true mapstagtag=v${buildid}   ############ repository control ############### # section defines properties parameterizing repositories plugins, fragments # bundles , features being obtained from.   # tags use when fetching elements build. # default thebuilder use whatever in maps.   # value takes form of comma separated list of repository identifier (like used in map files) ,  # overriding value # example fetchtag=cvs=head, svn=v20050101 # fetchtag=head skipfetch=true   ############# java compiler options ############## # location of java jars compile against.  typically rt.jar jdk/jre #bootclasspath=${java.home}/lib/rt.jar  # specific jre locations compile against. these values used compile bundles specifying  # bundle-requiredexecutionenvironment. uncomment , set values environments support #cdc-1.0/foundation-1.0= /path/to/rt.jar #cdc-1.1/foundation-1.1= #osgi/minimum-1.0= #osgi/minimum-1.1= #jre-1.1= #j2se-1.2= #j2se-1.3= #j2se-1.4= #j2se-1.5= #javase-1.6= #personaljava-1.1= #personaljava-1.2= #cdc-1.0/personalbasis-1.0= #cdc-1.0/personaljava-1.0= #cdc-1.1/personalbasis-1.1= #cdc-1.1/personaljava-1.1=  # specify output format of compiler log when eclipse jdt used logextension=.log  # whether or not include debug info in output jars javacdebuginfo=false   # whether or not fail build if there compiler errors javacfailonerror=true  # enable or disable verbose mode of compiler javacverbose=true  # arguments compiler. these specific java compiler being used. #compilerarg=  # default value version of source code. value used when compiling plug-ins not set bundle-requiredexecutionenvironment or set javacsource in build.properties javacsource=1.6  # default value version of byte code targeted. value used when compiling plug-ins not set bundle-requiredexecutionenvironment or set javactarget in build.properties. javactarget=1.6 

the line

configs=win32, win32, x86 

in build properties specifies windows 32 bit build ('x86' means 32 bit).

use

configs=win32, win32, x86_64 

for 64 bit ('x86_64').

you need specify 64 bit eclipse in configuration.


Comments