make/project.xml

Sun, 22 Dec 2024 22:10:04 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 22 Dec 2024 22:10:04 +0100
changeset 1047
40aad3f0bc9e
parent 990
f708863e7ec6
permissions
-rw-r--r--

don't trust that size_t always has word width

it should be the case on all platforms supported by UCX, but it's not strictly defined in POSIX that it must be the case

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

    <dependency name="no_coverage">
        <test>test -z "$FEATURE_COVERAGE"</test>
    </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">
            <dependencies>no_coverage</dependencies>
            <desc>use custom implementation, instead</desc>
            <disabled>
                <define name="CX_NO_SZMUL_BUILTIN"/>
            </disabled>
        </feature>
        <dependencies>c,file-tools</dependencies>
    </target>
</project>

mercurial