make/project.xml

Mon, 18 Nov 2024 22:05:42 +0100

author
Mike Becker <universe@uap-core.de>
date
Mon, 18 Nov 2024 22:05:42 +0100
changeset 988
15b3ca7ee33f
parent 987
53e22f112b11
permissions
-rw-r--r--

make ucx C++ compatible again (and add tests for it) - fixes #486

<?xml version="1.0" encoding="UTF-8"?>
<project version="0.3" xmlns="http://unixwork.de/uwproj">
    <config>
        <var name="src_dir" exec="true">pwd</var>
        <var name="DOXYGEN" exec="true">command -v doxygen</var>
        <var name="PANDOC" exec="true">command -v pandoc</var>
    </config>

    <dependency>
        <make>
            # library version
            VERSION=3.1.0
            LIBVERSION=5.0.0
            LIBVERSION_MAJOR=5

            # build directory structure !! do not change or override !!
            src_dir=${src_dir}
            build_dir=${src_dir}/build
            docs_dir=${src_dir}/build/docs
            dist_dir=${src_dir}/dist
        </make>
    </dependency>
    
    <dependency platform="solaris">
        <ldflags>-lm</ldflags>
    </dependency>

    <dependency name="file-tools">
        <make>
            MKDIR=/bin/mkdir -p
            RMFILE=/bin/rm -f
            RMDIR=/bin/rm -f -R
            COPYFILE=/bin/cp -f
            COPYALL=/bin/cp -f -R
            SYMLINK=/bin/ln -s
        </make>
    </dependency>

    <dependency name="c" platform="mingw">
        <lang>c</lang>
        <make>
            AR=ar
            ARFLAGS=r
            STLIB_EXT=.lib
            SHLIB_EXT=.dll
        </make>
    </dependency>

    <dependency name="c" platform="macos">
        <lang>c</lang>
        <make>
            AR=ar
            ARFLAGS=r
            STLIB_EXT=.a
            SHLIB_EXT=.dylib
        </make>
    </dependency>

    <dependency name="c" platform="unix">
        <lang>c</lang>
        <make>
            AR=ar
            ARFLAGS=cr
            STLIB_EXT=.a
            SHLIB_EXT=.so
        </make>
    </dependency>

    <dependency name="cxx">
        <lang>cpp</lang>
    </dependency>

    <dependency name="doxygen">
        <test>test -n "$DOXYGEN"</test>
        <make>DOXYGEN=$DOXYGEN</make>
    </dependency>

    <dependency name="pandoc">
        <test>test -n "$PANDOC"</test>
        <make>PANDOC=$PANDOC</make>
    </dependency>

    <dependency name="coverage" toolchain="gcc">
        <cflags>\${COVERAGE_CFLAGS}</cflags>
        <ldflags>\${COVERAGE_LDFLAGS}</ldflags>
    </dependency>

    <target>
        <option arg="with-docs">
            <value str="all">
                <dependencies>pandoc,doxygen</dependencies>
                <make>
                    # Documentation
                    WITH_DOCS_API=yes
                    WITH_DOCS_HTML=yes
                </make>
            </value>
            <value str="html">
                <dependencies>pandoc</dependencies>
                <make>
                    # Documentation
                    WITH_DOCS_HTML=yes
                </make>
            </value>
            <value str="api">
                <dependencies>doxygen</dependencies>
                <make>
                    # Documentation
                    WITH_DOCS_API=yes
                </make>
            </value>
            <value str="none"/>
            <default value="all"/>
            <default value="html"/>
            <default value="api"/>
            <default value="none"/>
        </option>
        <feature name="coverage">
            <dependencies>coverage</dependencies>
        </feature>
        <feature name="cxx-tests" default="true">
            <dependencies>cxx</dependencies>
            <desc>the check-cxx makefile target</desc>
            <make>
                # Enable the check-cxx target
                WITH_CXX_TEST=yes
            </make>
        </feature>
        <feature name="szmul-builtin" default="true">
            <desc>use custom implementation, instead</desc>
            <disabled>
                <define name="CX_NO_SZMUL_BUILTIN"/>
            </disabled>
        </feature>
        <dependencies>c,file-tools</dependencies>
    </target>
</project>

mercurial