Author: adrianocrestani Date: Thu Nov 8 22:54:31 2007 New Revision: 593437
URL: http://svn.apache.org/viewvc?rev=593437&view=rev Log: -adding ant build system for samples and tests -renaming TuscanyDASMSVC8DevStudioCCompiler class to TuscanyMSVC8DevStudioCCompiler and changing its package from tuscany.antCompilers to tuscany.antCompilers.das Added: incubator/tuscany/cpp/das/runtime/test/build.xml incubator/tuscany/cpp/das/samples/CompanySample/build.xml incubator/tuscany/cpp/das/samples/build.xml incubator/tuscany/cpp/das/tools/ant_cpptasks/tuscanyAntCompilers/TuscanyMSVC8DevStudioCCompiler.java Removed: incubator/tuscany/cpp/das/tools/ant_cpptasks/tuscanyAntCompilers/TuscanyDASMSVC8DevStudioCCompiler.java Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_test/das_test.vcproj incubator/tuscany/cpp/das/VSExpress/tuscany_das/tuscany_das.suo incubator/tuscany/cpp/das/antscripts/TuscanyMSVC8DevStudioCCompiler.jar incubator/tuscany/cpp/das/antscripts/system.xml incubator/tuscany/cpp/das/build.xml incubator/tuscany/cpp/das/runtime/test/src/main.cpp incubator/tuscany/cpp/das/samples/CompanySample/VSExpress/CompanySample.suo incubator/tuscany/cpp/das/samples/CompanySample/src/main.cpp incubator/tuscany/cpp/das/tools/ant_cpptasks/build.xml incubator/tuscany/cpp/das/tools/build.xml Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_test/das_test.vcproj URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_test/das_test.vcproj?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_test/das_test.vcproj (original) +++ incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_test/das_test.vcproj Thu Nov 8 22:54:31 2007 @@ -204,27 +204,47 @@ Name="Resource Files" > <File - RelativePath="..\..\..\runtime\test\resource\testCompositeRelationship.xml" + RelativePath="..\..\..\runtime\test\rsc\testCompositeRelationship.xml" > </File> <File - RelativePath="..\..\..\runtime\test\resource\testIncompleteCompositeRelationship1.xml" + RelativePath="..\..\..\runtime\test\rsc\testCreateOperation.xml" > </File> <File - RelativePath="..\..\..\runtime\test\resource\testIncompleteCompositeRelationship2.xml" + RelativePath="..\..\..\runtime\test\rsc\testDeleteOperation.xml" > </File> <File - RelativePath="..\..\..\runtime\test\resource\testKeyPairColumnTypeNotEqual.xml" + RelativePath="..\..\..\runtime\test\rsc\testIncompleteCompositeRelationship1.xml" > </File> <File - RelativePath="..\..\..\runtime\test\resource\testManyRelationship1.xml" + RelativePath="..\..\..\runtime\test\rsc\testIncompleteCompositeRelationship2.xml" > </File> <File - RelativePath="..\..\..\runtime\test\resource\testManyRelationship2.xml" + RelativePath="..\..\..\runtime\test\rsc\testKeyPairColumnTypeNotEqual.xml" + > + </File> + <File + RelativePath="..\..\..\runtime\test\rsc\testManyRelationship1.xml" + > + </File> + <File + RelativePath="..\..\..\runtime\test\rsc\testManyRelationship2.xml" + > + </File> + <File + RelativePath="..\..\..\runtime\test\rsc\testModifyOperation.xml" + > + </File> + <File + RelativePath="..\..\..\runtime\test\rsc\testOCC1.xml" + > + </File> + <File + RelativePath="..\..\..\runtime\test\rsc\testOCC2.xml" > </File> </Filter> Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/tuscany_das.suo URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/tuscany_das.suo?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== Binary files - no diff available. Modified: incubator/tuscany/cpp/das/antscripts/TuscanyMSVC8DevStudioCCompiler.jar URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/antscripts/TuscanyMSVC8DevStudioCCompiler.jar?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== Binary files - no diff available. Modified: incubator/tuscany/cpp/das/antscripts/system.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/antscripts/system.xml?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/antscripts/system.xml (original) +++ incubator/tuscany/cpp/das/antscripts/system.xml Thu Nov 8 22:54:31 2007 @@ -306,6 +306,7 @@ </if> + <!-- Configure the object.ext Take the override value from platform.properties if set @@ -419,11 +420,13 @@ so we made our own until the bugs are resolved. The actual implementation of TuscanyDASMSVC8DevStudioCCompiler is in TuscanyDAS/tools/ant_cpptasks --> - <compiler id="msvc8-Compiler" + + <compiler id="msvc8-Compiler" extends="Tuscany-BaseCompiler" - classname="tuscany.antCompilers.TuscanyDASMSVC8DevStudioCCompiler"> + classname="tuscany.antCompilers.das.TuscanyMSVC8DevStudioCCompiler"> <defineset define="WIN32,_CRT_SECURE_NO_DEPRECATE,_CRT_NON_CONFORMING_SWPRINTFS"/> </compiler> + <!-- g++ compiler for most Unix platforms --> <compiler id="g++-Compiler" extends="Tuscany-BaseCompiler" name="g++"/> Modified: incubator/tuscany/cpp/das/build.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/build.xml?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/build.xml (original) +++ incubator/tuscany/cpp/das/build.xml Thu Nov 8 22:54:31 2007 @@ -19,6 +19,9 @@ --> <project name="TuscanyDASNative" default="all" basedir="."> +<property name="test.dir" location="runtime/test"/> +<property name="samples.dir" location="samples"/> +<property name="tools.dir" location="tools"/> <!-- This is the root level ant build.xml file for TuscanyDAS Native @@ -36,13 +39,12 @@ --> <target name="all" description="build and install all TuscanyDASNative source code and documentation"> - <antcall target="build"/> - <antcall target="install"/> + <antcall target="build"/> + <antcall target="install"/> </target> <target name="build" description="Build all TuscanyDASNative source code and documentation"> - <antcall target="build.das"/> - <!--antcall target="generate.docs"/--> + <antcall target="build.das"/> </target> <target name="install" description="Install TuscanyDASNative libraries and headers"> @@ -52,13 +54,21 @@ <target name="clean" description="Clean all TuscanyDASNative compiled source code"> <antcall target="clean.das"/> - <!--antcall target="clean.docs"/--> + <antcall target="clean.tests"/> </target> - - <target name="test" description="Run DAS tests, not implemented yet"> - <!-- TODO finish this --> + + <target name="tools" description="Build and Install all TuscanyDASNative tools"> + <antcall target="build.tools"/> </target> +<target name="samples" description="Build and Install all TuscanyDASNative samples"> + <antcall target="build.samples"/> +</target> + +<target name="tests" description="Build and run all TuscanyDASNative tests"> + <ant target="all" antfile="${test.dir}/build.xml" inheritAll="false"/> +</target> + <!-- Internal targets @@ -66,6 +76,10 @@ Using antfile and inheritAll="false" to maintain the subdir build.xml basedir settings --> + <target name="build.tools"> + <ant target="all" antfile="${tools.dir}/build.xml" inheritAll="false"/> + </target> + <target name="build.das"> <ant target="build" antfile="${runtime.das.dir}/build.xml" inheritAll="false"/> </target> @@ -78,16 +92,25 @@ <ant target="install" antfile="${runtime.das.dir}/build.xml" inheritAll="false"/> </target> - <target name="install.docs"> - <!--ant target="install.docs" antfile="${runtime.das.dir}/build.xml" inheritAll="false"/--> - </target> - + <target name="clean.das"> <ant target="clean" antfile="${runtime.das.dir}/build.xml" inheritAll="false"/> </target> - <target name="clean.docs"> - <!--ant target="clean.docs" antfile="${runtime.das.dir}/build.xml" inheritAll="false"/--> + <target name="clean.tools"> + <ant target="clean" antfile="${tools.dir}/build.xml" inheritAll="false"/> + </target> + +<target name="clean.tests"> + <ant target="clean" antfile="${test.dir}/build.xml" inheritAll="false"/> + </target> + + <target name="build.samples"> + <ant target="all" antfile="${samples.dir}/build.xml" inheritAll="false"/> + </target> + + <target name="clean.samples"> + <ant target="clean" antfile="${samples.dir}/build.xml" inheritAll="false"/> </target> </project> Added: incubator/tuscany/cpp/das/runtime/test/build.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/build.xml?rev=593437&view=auto ============================================================================== --- incubator/tuscany/cpp/das/runtime/test/build.xml (added) +++ incubator/tuscany/cpp/das/runtime/test/build.xml Thu Nov 8 22:54:31 2007 @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project name="TuscanyDASNative_tests" default="all" basedir="../.."> + + <import file="${basedir}/antscripts/system.xml"/> + <import file="${basedir}/antscripts/compile-targets.xml"/> + + <!-- + Notice that the basedir for this project is set to the TuscanyDAS root dir + This makes path setting in system.xml much simpler, but we'll just have to + set a property here to this directory. + --> + + <target name="init"> + <tstamp/> + <property name="this.dir" location="${basedir}/runtime/test"/> + <property name="test.dir" location="${this.dir}/build"/> + <property name="test.src.dir" location="${this.dir}/src/"/> + <property name="test.build.dir" location="${test.dir}/build"/> + <property name="test.install.dir" + location="${tuscanyDAS.install.dir}/test"/> + </target> + + <!-- + Public targets + --> + <target name="all" + description="build and install the TuscanyDASNative test"> + <antcall target="build"/> + <antcall target="install"/> + </target> + + <target name="build" + description="build the TuscanyDASNative test"> + <antcall target="build.test"/> + </target> + + <target name="install" + description="Install the TuscanyDASNative test"> + <antcall target="install.test"/> + </target> + + <target name="clean" + description="Clean the TuscanyDASNative test"> + <antcall target="clean.test"/> + <delete dir="${test.install.dir}" quiet="true"/> + </target> + + <!-- + Internal targets + They can still be called, they're just not described, so wont show up in "ant -p" + --> + + <!-- build --> + + <target name="build.test" depends="init,check.sdo"> + <mkdir dir="${test.build.dir}"/> + + <copy todir="${test.build.dir}"> + <fileset dir="${test.dir}" includes="*.cpp"/> + </copy> + <!-- build the library --> + <cpp-build + srcdir="${test.src.dir}" + infiles="*.cpp" + outdir="${test.build.dir}/.libs" + outtype="executable" + outfile="das_test"> + <custom-build-elements> + <includepath path="${tuscanyDAS.install.dir}/include"/> + <includepath path="${tuscany.sdo.home.dir}/include"/> + + <libset dir="${tuscanyDAS.install.dir}/lib" libs="tuscany_das"/> + <libset dir="${tuscany.sdo.home.dir}/lib" libs="tuscany_sdo"/> + <libset libs="odbc32"/> + + </custom-build-elements> + </cpp-build> + </target> + + + <!-- install --> + + <target name="install.test" depends="init"> + <cpp-install-files + files="*.exe*" + srcdir="${test.dir}/build/.libs/" + destdir="${test.install.dir}"/> + + <cpp-install-files + files="*.xml" + srcdir="${this.dir}/rsc" + destdir="${test.install.dir}/rsc"/> + + + + + </target> + + <!-- clean --> + + <target name="clean.test" depends="init"> + <delete dir="${test.build.dir}" quiet="true"/> + <delete dir="${test.install.dir}/test" quiet="true"/> + </target> + +</project> Modified: incubator/tuscany/cpp/das/runtime/test/src/main.cpp URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/test/src/main.cpp?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/runtime/test/src/main.cpp (original) +++ incubator/tuscany/cpp/das/runtime/test/src/main.cpp Thu Nov 8 22:54:31 2007 @@ -33,9 +33,8 @@ #include <commonj/sdo/DataObject.h> #include <commonj/sdo/SDORuntimeException.h> #include <commonj/sdo/DataFactory.h> -#include <libxml/xmlreader.h> -#define TEST_RESOURCE_PATH "../../../../runtime/test/rsc/" +#define TEST_RESOURCE_PATH "rsc/" using namespace std; using namespace apache::das; Modified: incubator/tuscany/cpp/das/samples/CompanySample/VSExpress/CompanySample.suo URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/samples/CompanySample/VSExpress/CompanySample.suo?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== Binary files - no diff available. Added: incubator/tuscany/cpp/das/samples/CompanySample/build.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/samples/CompanySample/build.xml?rev=593437&view=auto ============================================================================== --- incubator/tuscany/cpp/das/samples/CompanySample/build.xml (added) +++ incubator/tuscany/cpp/das/samples/CompanySample/build.xml Thu Nov 8 22:54:31 2007 @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project name="TuscanyDASNative_Sample_CompanySample" default="all" basedir="../.."> + + <import file="${basedir}/antscripts/system.xml"/> + <import file="${basedir}/antscripts/compile-targets.xml"/> + + <!-- + Notice that the basedir for this project is set to the TuscanyDAS root dir + This makes path setting in system.xml much simpler, but we'll just have to + set a property here to this directory. + --> + + <target name="init"> + <tstamp/> + <property name="this.dir" location="${basedir}/samples/CompanySample"/> + <property name="sample.CompanySample.dir" location="${this.dir}/build"/> + <property name="sample.CompanySample.src.dir" location="${this.dir}/src/"/> + <property name="sample.CompanySample.build.dir" location="${sample.CompanySample.dir}/build"/> + <property name="CompanySample.install.dir" + location="${tuscanyDAS.install.dir}/samples/CompanySample"/> + </target> + + <!-- + Public targets + --> + <target name="all" + description="build and install the TuscanyDASNative CompanySample sample"> + <antcall target="build"/> + <antcall target="install"/> + </target> + + <target name="build" + description="build the TuscanyDASNative CompanySample sample"> + <antcall target="build.sample.CompanySample"/> + </target> + + <target name="install" + description="Install the TuscanyDASNative CompanySample sample"> + <antcall target="install.sample.CompanySample"/> + </target> + + <target name="clean" + description="Clean the TuscanyDASNative CompanySample sample"> + <antcall target="clean.sample.CompanySample"/> + <delete dir="${CompanySample.install.dir}" quiet="true"/> + </target> + + <!-- + Internal targets + They can still be called, they're just not described, so wont show up in "ant -p" + --> + + <!-- build --> + + <target name="build.sample.CompanySample" depends="init,check.sdo"> + <mkdir dir="${sample.CompanySample.build.dir}"/> + + <copy todir="${sample.CompanySample.build.dir}"> + <fileset dir="${sample.CompanySample.dir}" includes="*.h"/> + <fileset dir="${sample.CompanySample.dir}" includes="*.cpp"/> + </copy> + <!-- build the library --> + <cpp-build + srcdir="${sample.CompanySample.src.dir}" + infiles="*.cpp" + outdir="${sample.CompanySample.build.dir}/.libs" + outtype="executable" + outfile="CompanySample"> + <custom-build-elements> + <includepath path="${tuscanyDAS.install.dir}/include"/> + <includepath path="${tuscany.sdo.home.dir}/include"/> + + <libset dir="${tuscanyDAS.install.dir}/lib" libs="tuscany_das"/> + <libset dir="${tuscany.sdo.home.dir}/lib" libs="tuscany_sdo"/> + <libset libs="odbc32"/> + + </custom-build-elements> + </cpp-build> + </target> + + + <!-- install --> + + <target name="install.sample.CompanySample" depends="init"> +<echo message="sample.dir = ${sample.CompanySample.dir}"/> + <cpp-install-files + files="*.exe*" + srcdir="${sample.CompanySample.dir}/build/.libs/" + destdir="${CompanySample.install.dir}"/> + + + + + </target> + + <!-- clean --> + + <target name="clean.sample.CompanySample" depends="init"> + <delete dir="${sample.CompanySample.build.dir}" quiet="true"/> + <delete dir="${CompanySample.install.dir}/sample.CompanySample" quiet="true"/> + </target> + + +</project> Modified: incubator/tuscany/cpp/das/samples/CompanySample/src/main.cpp URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/samples/CompanySample/src/main.cpp?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/samples/CompanySample/src/main.cpp (original) +++ incubator/tuscany/cpp/das/samples/CompanySample/src/main.cpp Thu Nov 8 22:54:31 2007 @@ -135,19 +135,19 @@ DataObjectPtr root = command->executeQuery(); // Get all companies - DataObjectList& companyList = root->getList("company"); + DataObjectList& companyList = root->getList("COMPANY"); // Print each company id and name for (int i = 0 ; i < companyList.size() ; i++) { // Get the company id - long id = companyList[i]->getInt("id"); + long id = companyList[i]->getInt("ID"); // Get the name string length and allocate enough space for it - unsigned int stringLength = companyList[i]->getLength("name"); + unsigned int stringLength = companyList[i]->getLength("NAME"); wchar_t* buffer = new wchar_t[stringLength]; // Get the company name - companyList[i]->getString("name", buffer, stringLength); + companyList[i]->getString("NAME", buffer, stringLength); wstring name = wstring(buffer, stringLength); // Print the company data @@ -161,17 +161,17 @@ } // Get a company named "apache" - DataObjectPtr company = root->getDataObject("company[name='apache']"); + DataObjectPtr company = root->getDataObject("COMPANY[NAME='apache']"); // Remove the first department of this company and get it - commonj::sdo::DataObjectPtr department = company->getList("department").remove(0);; + commonj::sdo::DataObjectPtr department = company->getList("DEPARTMENT").remove(0);; // Change the company name to "amd" wstring companyName = L"amd"; - company->setString("name", companyName.c_str(), companyName.size()); + company->setString("NAME", companyName.c_str(), companyName.size()); // The department is added to the company named "ibm" - root->getDataObject("company[name='ibm']")->getList("department").append(department); + root->getDataObject("COMPANY[NAME='ibm']")->getList("DEPARTMENT").append(department); // The graph changes are persited on the database das->applyChanges(root); Added: incubator/tuscany/cpp/das/samples/build.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/samples/build.xml?rev=593437&view=auto ============================================================================== --- incubator/tuscany/cpp/das/samples/build.xml (added) +++ incubator/tuscany/cpp/das/samples/build.xml Thu Nov 8 22:54:31 2007 @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<project name="TuscanyDASNative_samples" default="all" basedir=".."> + + <!-- + This is the root level ant build.xml file for TuscanyDAS Native samples + Nothing is actually performed here, it just delegates to subdirectory + build.xml files. + --> + + <import file="${basedir}/antscripts/system.xml"/> + <import file="${basedir}/antscripts/compile-targets.xml"/> + + + <!-- + Notice that the basedir for this project is set to the TuscanyDAS root dir + This makes path setting in system.xml much simpler, but we'll just have to + set a property here to this directory. + --> + <property name="this.dir" location="${basedir}/samples"/> + + <property name="CompanySample.dir" location="${this.dir}/CompanySample"/> + + <!-- + Public targets + --> + + <target name="all" description="Build and install all TuscanyDASNative samples"> + <antcall target="CompanySample"/> + </target> + + <!-- + Using antfile and inheritAll="false" to maintain the subdir build.xml basedir settings + --> + + <target name="CompanySample" description="Build and install the CompanySample sample"> + <ant target="all" antfile="${CompanySample.dir}/build.xml" inheritAll="false"/> + </target> + + <!-- clean --> + + <target name="clean" description="Clean all TuscanyDASNative samples"> + <ant target="clean" antfile="${CompanySample.dir}/build.xml" inheritAll="false"/> + </target> + +</project> Modified: incubator/tuscany/cpp/das/tools/ant_cpptasks/build.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/tools/ant_cpptasks/build.xml?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/tools/ant_cpptasks/build.xml (original) +++ incubator/tuscany/cpp/das/tools/ant_cpptasks/build.xml Thu Nov 8 22:54:31 2007 @@ -19,7 +19,7 @@ --> -<project name="org.apache.tuscany.sca.cpp.antCompilers" default="all" basedir="../.."> +<project name="org.apache.tuscany.das.cpp.antCompilers" default="all" basedir="../.."> <import file="${basedir}/antscripts/system.xml"/> <import file="${basedir}/antscripts/compile-targets.xml"/> @@ -30,7 +30,7 @@ <property name="build.dir" location="${this.dir}/build" /> <property name="java.src.dir" location="${this.dir}/tuscanyAntCompilers" /> <property name="install.dir" location="${basedir}/antscripts" /> - <property name="class.name" value="TuscanyDASMSVC8DevStudioCCompiler" /> + <property name="class.name" value="TuscanyMSVC8DevStudioCCompiler" /> </target> <target name="all" depends="init,build,install"/> @@ -53,9 +53,9 @@ <target name="make.jar" depends="init,build"> <jar jarfile="${build.dir}/${class.name}.jar" basedir="${build.dir}" - includes="tuscany/antCompilers/${class.name}.class"> + includes="tuscany/antCompilers/das/${class.name}.class"> <manifest> - <attribute name="Main-Class" value="tuscany.antCompilers.${class.name}" /> + <attribute name="Main-Class" value="tuscany.antCompilers.das.${class.name}" /> </manifest> </jar> </target> Added: incubator/tuscany/cpp/das/tools/ant_cpptasks/tuscanyAntCompilers/TuscanyMSVC8DevStudioCCompiler.java URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/tools/ant_cpptasks/tuscanyAntCompilers/TuscanyMSVC8DevStudioCCompiler.java?rev=593437&view=auto ============================================================================== --- incubator/tuscany/cpp/das/tools/ant_cpptasks/tuscanyAntCompilers/TuscanyMSVC8DevStudioCCompiler.java (added) +++ incubator/tuscany/cpp/das/tools/ant_cpptasks/tuscanyAntCompilers/TuscanyMSVC8DevStudioCCompiler.java Thu Nov 8 22:54:31 2007 @@ -0,0 +1,227 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package tuscany.antCompilers.das; + +import java.io.File; +import java.util.Vector; + +import net.sf.antcontrib.cpptasks.CUtil; +import net.sf.antcontrib.cpptasks.OptimizationEnum; + +import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration; +import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; +import net.sf.antcontrib.cpptasks.compiler.Linker; +import net.sf.antcontrib.cpptasks.compiler.LinkType; +import net.sf.antcontrib.cpptasks.compiler.PrecompilingCommandLineCCompiler; +import net.sf.antcontrib.cpptasks.compiler.Processor; + +import net.sf.antcontrib.cpptasks.devstudio.DevStudioProcessor; +import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.types.Environment; + + +/** + * An abstract base class for compilers that are basically command line + * compatible with Microsoft(r) C/C++ Optimizing Compiler + * + * This class was taken from cpptasks. Its a combination of the following 2 classes: + * net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleCCompiler + * net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler + * + * To compile MSVC8.0 in debug mode, the cpptasks msvc compiler doesnt distinguish + * between msvc 7.1 and 8.0 and seems to actually be 7.1 centric. This implementation + * For the Apache Tuscany project tries to address those issues. + */ + +public final class TuscanyMSVC8DevStudioCCompiler + extends PrecompilingCommandLineCCompiler +{ + private static String[] mflags_ = + new String[] {"/ML", "/MLd", null, null, "/MT", "/MTd", "/MD", "/MDd"}; + // first four are single-threaded + // (runtime=static,debug=false), (..,debug=true), + // (runtime=dynamic,debug=true), (..,debug=false), (not supported) + // next four are multi-threaded, same sequence + + // Indeces into the mflags_ array + private static int MINDEX_DEBUG = 1; + private static int MINDEX_STATIC_RUNTIME = 2; + private static int MINDEX_MULTI_THREADED = 4; + + private static final TuscanyMSVC8DevStudioCCompiler instance_ = + new TuscanyMSVC8DevStudioCCompiler( "cl", false, null); + + public static TuscanyMSVC8DevStudioCCompiler getInstance() + { + return instance_; + } + + private TuscanyMSVC8DevStudioCCompiler( + String command, + boolean newEnvironment, + Environment env) + { + super(command, + "/bogus", + new String[]{".c", ".cc", ".cpp", ".cxx", ".c++"}, + new String[]{".h", ".hpp", ".inl"}, + ".obj", + false, + null, + newEnvironment, + env); + } + + public Processor changeEnvironment(boolean newEnvironment, Environment env) + { + if (newEnvironment || env != null) { + return new TuscanyMSVC8DevStudioCCompiler(getCommand(), newEnvironment, env); + } + return this; + } + + public Linker getLinker(LinkType type) + { + return DevStudioLinker.getInstance().getLinker(type); + } + + public int getMaximumCommandLength() + { + return 32767; + } + + protected void addImpliedArgs( + final Vector args, + final boolean debug, + final boolean multithreaded, + final boolean exceptions, + final LinkType linkType, + final Boolean rtti, + final OptimizationEnum optimization) + { + args.addElement("/c"); + args.addElement("/nologo"); + if (exceptions) { + // changed to eliminate warning on VC 2005, should support VC 6 and later + // use /GX to support VC5 - 2005 (with warning) + args.addElement("/EHsc"); + } + int mindex = 0; + if (multithreaded) { + mindex += MINDEX_MULTI_THREADED; + } + boolean staticRuntime = linkType.isStaticRuntime(); + if (!staticRuntime) { + mindex += MINDEX_STATIC_RUNTIME; + } + + if (debug) { + mindex += MINDEX_DEBUG; + args.addElement("/Zi"); // Generates complete debugging information + args.addElement("/Od"); // Disables optimization + + // Native DAS gets corrupted stack memory when /RTC1 argument is added + //args.addElement("/RTC1"); // Enables run-time error checking as opposed to depracated /GZ + + args.addElement("/Gd"); // Uses the __cdecl calling convention (x86 only) + args.addElement("/D_DEBUG"); // Debug mode + } else { + args.addElement("/DNDEBUG"); + if (optimization != null) { + if (optimization.isSize()) { + args.addElement("/O1"); + } + + if (optimization.isSpeed()) { + args.addElement("/O2"); + } + } + } + + String mflag = mflags_[mindex]; + if (mflag == null) { + throw new BuildException( + "multithread='false' and runtime='dynamic' not supported"); + } + args.addElement(mflag); + if (rtti != null && rtti.booleanValue()) { + args.addElement("/GR"); + } + } + + protected void addWarningSwitch(Vector args, int level) + { + DevStudioProcessor.addWarningSwitch(args, level); + } + + protected CompilerConfiguration createPrecompileGeneratingConfig( + CommandLineCompilerConfiguration baseConfig, + File prototype, + String lastInclude) + { + String[] additionalArgs = new String[]{ + "/Fp" + CUtil.getBasename(prototype) + ".pch", "/Yc"}; + return new + CommandLineCompilerConfiguration( + baseConfig, + additionalArgs, + null, + true); + } + + protected CompilerConfiguration createPrecompileUsingConfig( + CommandLineCompilerConfiguration baseConfig, + File prototype, + String lastInclude, + String[] exceptFiles) + { + String[] additionalArgs = new String[]{ + "/Fp" + CUtil.getBasename(prototype) + ".pch", + "/Yu" + lastInclude}; + return new + CommandLineCompilerConfiguration( + baseConfig, + additionalArgs, + exceptFiles, + false); + } + + protected void getDefineSwitch(StringBuffer buffer, String define, String value) + { + DevStudioProcessor.getDefineSwitch(buffer, define, value); + } + + protected File[] getEnvironmentIncludePath() + { + return CUtil.getPathFromEnvironment("INCLUDE", ";"); + } + + protected String getIncludeDirSwitch(String includeDir) + { + return DevStudioProcessor.getIncludeDirSwitch(includeDir); + } + + protected void getUndefineSwitch(StringBuffer buffer, String define) + { + DevStudioProcessor.getUndefineSwitch(buffer, define); + } +} Modified: incubator/tuscany/cpp/das/tools/build.xml URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/tools/build.xml?rev=593437&r1=593436&r2=593437&view=diff ============================================================================== --- incubator/tuscany/cpp/das/tools/build.xml (original) +++ incubator/tuscany/cpp/das/tools/build.xml Thu Nov 8 22:54:31 2007 @@ -1,105 +1,95 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> - -<project name="TuscanyScaNative_tools" default="all" basedir=".."> - - <!-- - This is the root level ant build.xml file for TuscanySCA Native tools - Nothing is actually performed here, it just delegates to subdirectory - build.xml files. - --> - - <import file="${basedir}/antscripts/system.xml"/> - <import file="${basedir}/antscripts/compile-targets.xml"/> - - <!-- - Notice that the basedir for this project is set to the TuscanySCA root dir - This makes path setting in system.xml much simpler, but we'll just have to - set a property here to this directory. - --> - - <property name="this.dir" location="${basedir}/tools"/> - <property name="TuscanyDriver.dir" location="${this.dir}/TuscanyDriver"/> - <property name="ant_cpptasks.dir" location="${this.dir}/ant_cpptasks"/> - - <!-- - Public targets - --> - - <target name="all" description="Build and install all TuscanyScaNative tools"> - <antcall target="build"/> - <antcall target="install"/> - </target> - - <!-- - Notice the ant_cpptasks tool is not included in the "all" target. - This is because its not something that should be built that often. - The resulting jar is included in TUSCANY_SCA_SRC_ROOT/antscripts svn - --> - - <target name="build" description="Build all TuscanyScaNative tools"> - <antcall target="build.TuscanyDriver"/> - </target> - - <target name="install" description="Install TuscanyScaNative tools"> - <antcall target="install.TuscanyDriver"/> - </target> - - <target name="clean" description="Clean all TuscanyScaNative tools"> - <antcall target="clean.TuscanyDriver"/> - </target> - - <!-- - Internal targets - They can still be called, they're just not described, so wont show up in "ant -p" - Using antfile and inheritAll="false" to maintain the subdir build.xml basedir settings - --> - - <!-- build --> - - <target name="build.ant_cpptasks"> - <ant target="build" antfile="${ant_cpptasks.dir}/build.xml" inheritAll="false"/> - </target> - - <target name="build.TuscanyDriver"> - <ant target="build" antfile="${TuscanyDriver.dir}/build.xml" inheritAll="false"/> - </target> - - <!-- install --> - - <target name="install.ant_cpptasks"> - <ant target="install" antfile="${ant_cpptasks.dir}/build.xml" inheritAll="false"/> - </target> - - <target name="install.TuscanyDriver"> - <ant target="install" antfile="${TuscanyDriver.dir}/build.xml" inheritAll="false"/> - </target> - - <!-- clean --> - - <target name="clean.ant_cpptasks"> - <ant target="clean" antfile="${ant_cpptasks.dir}/build.xml" inheritAll="false"/> - </target> - - <target name="clean.TuscanyDriver"> - <ant target="clean" antfile="${TuscanyDriver.dir}/build.xml" inheritAll="false"/> - </target> - -</project> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<project name="TuscanyDASNative_tools" default="all" basedir=".."> + + <!-- + This is the root level ant build.xml file for TuscanyDAS Native tools + Nothing is actually performed here, it just delegates to subdirectory + build.xml files. + --> + + <import file="${basedir}/antscripts/system.xml"/> + <import file="${basedir}/antscripts/compile-targets.xml"/> + + <!-- + Notice that the basedir for this project is set to the TuscanyDAS root dir + This makes path setting in system.xml much simpler, but we'll just have to + set a property here to this directory. + --> + + <property name="this.dir" location="${basedir}/tools"/> + <property name="ant_cpptasks.dir" location="${this.dir}/ant_cpptasks"/> + + <!-- + Public targets + --> + + <target name="all" description="Build and install all TuscanyDASNative tools"> + <antcall target="build"/> + <antcall target="install"/> + </target> + + <!-- + Notice the ant_cpptasks tool is not included in the "all" target. + This is because its not something that should be built that often. + The resulting jar is included in TUSCANY_DAS_SRC_ROOT/antscripts svn + --> + + <target name="build" description="Build all TuscanyDASNative tools"> + <antcall target="build.ant_cpptasks"/> + </target> + +<target name="install" description="Install TuscanyDASNative tools"> + <antcall target="install.ant_cpptasks"/> + </target> + + + <target name="clean" description="Clean all TuscanyDASNative tools"> + <antcall target="clean.ant_cpptasks"/> + </target> + + <!-- + Internal targets + They can still be called, they're just not described, so wont show up in "ant -p" + Using antfile and inheritAll="false" to maintain the subdir build.xml basedir settings + --> + + <!-- build --> + + <target name="build.ant_cpptasks"> + <ant target="build" antfile="${ant_cpptasks.dir}/build.xml" inheritAll="false"/> + </target> + + <!-- install --> + + <target name="install.ant_cpptasks"> + <ant target="install" antfile="${ant_cpptasks.dir}/build.xml" inheritAll="false"/> + </target> + + + <!-- clean --> + + <target name="clean.ant_cpptasks"> + <ant target="clean" antfile="${ant_cpptasks.dir}/build.xml" inheritAll="false"/> + </target> + + +</project> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
