<?xml version='1.0' encoding='UTF-8' standalone='no'?> <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.13"> <compounddef id="setup_8py" kind="file" language="Python"> <compoundname>setup.py</compoundname> <innernamespace refid="namespacebinary__c-python_1_1setup">binary_c-python::setup</innernamespace> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <programlisting> <codeline lineno="1"><highlight class="keyword">from</highlight><highlight class="normal"><sp/>distutils.core<sp/></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>setup,<sp/>Extension</highlight></codeline> <codeline lineno="2"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>os</highlight></codeline> <codeline lineno="3"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>subprocess</highlight></codeline> <codeline lineno="4"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>re</highlight></codeline> <codeline lineno="5"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>sys</highlight></codeline> <codeline lineno="6"><highlight class="normal"></highlight></codeline> <codeline lineno="7"><highlight class="normal"></highlight><highlight class="comment">#<sp/>binary_c<sp/>must<sp/>be<sp/>installed.</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="8"><highlight class="normal"></highlight></codeline> <codeline lineno="9"><highlight class="normal">binary_c_config<sp/>=<sp/>os.environ[</highlight><highlight class="stringliteral">'BINARY_C'</highlight><highlight class="normal">]+</highlight><highlight class="stringliteral">'/binary_c-config'</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="10"><highlight class="normal"></highlight></codeline> <codeline lineno="11"><highlight class="normal">binary_c_incdirs<sp/>=<sp/>subprocess.run([binary_c_config,</highlight><highlight class="stringliteral">'incdirs_list'</highlight><highlight class="normal">],stdout=subprocess.PIPE).stdout.decode(</highlight><highlight class="stringliteral">'utf-8'</highlight><highlight class="normal">).split()</highlight></codeline> <codeline lineno="12"><highlight class="normal">binary_c_libdirs<sp/>=<sp/>subprocess.run([binary_c_config,</highlight><highlight class="stringliteral">'libdirs_list'</highlight><highlight class="normal">],stdout=subprocess.PIPE).stdout.decode(</highlight><highlight class="stringliteral">'utf-8'</highlight><highlight class="normal">).split()</highlight></codeline> <codeline lineno="13"><highlight class="normal">binary_c_cflags<sp/>=<sp/><sp/>subprocess.run([binary_c_config,</highlight><highlight class="stringliteral">'cflags'</highlight><highlight class="normal">],stdout=subprocess.PIPE).stdout.decode(</highlight><highlight class="stringliteral">'utf-8'</highlight><highlight class="normal">).split()</highlight></codeline> <codeline lineno="14"><highlight class="normal"></highlight><highlight class="comment">#<sp/>binary_c_cflags.remove('-fvisibility=hidden')</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="15"><highlight class="normal">binary_c_libs<sp/>=<sp/>subprocess.run([binary_c_config,</highlight><highlight class="stringliteral">'libs_list'</highlight><highlight class="normal">],stdout=subprocess.PIPE).stdout.decode(</highlight><highlight class="stringliteral">'utf-8'</highlight><highlight class="normal">).split()</highlight></codeline> <codeline lineno="16"><highlight class="normal"></highlight></codeline> <codeline lineno="17"><highlight class="normal"></highlight><highlight class="comment">#<sp/>create<sp/>list<sp/>of<sp/>tuples<sp/>of<sp/>defined<sp/>macros</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="18"><highlight class="normal">binary_c_define_macros<sp/>=<sp/>[]</highlight></codeline> <codeline lineno="19"><highlight class="normal">defines<sp/>=<sp/>subprocess.run([binary_c_config,</highlight><highlight class="stringliteral">'define_macros'</highlight><highlight class="normal">],stdout=subprocess.PIPE).stdout.decode(</highlight><highlight class="stringliteral">'utf-8'</highlight><highlight class="normal">).split()</highlight></codeline> <codeline lineno="20"><highlight class="normal">lone<sp/>=<sp/>re.compile(</highlight><highlight class="stringliteral">'^-D(.+)$'</highlight><highlight class="normal">)</highlight></codeline> <codeline lineno="21"><highlight class="normal">partner<sp/>=<sp/>re.compile(</highlight><highlight class="stringliteral">'^-D(.+)=(.+)$'</highlight><highlight class="normal">)</highlight></codeline> <codeline lineno="22"><highlight class="normal"></highlight></codeline> <codeline lineno="23"><highlight class="normal"></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>x<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>defines:</highlight></codeline> <codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/>y<sp/>=<sp/>partner.match(x)</highlight></codeline> <codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/>if(y):</highlight></codeline> <codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>binary_c_define_macros.extend([(y.group(1),y.group(2))])</highlight></codeline> <codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline> <codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>y<sp/>=<sp/>lone.match(x)</highlight></codeline> <codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if(y):</highlight></codeline> <codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>binary_c_define_macros.extend([(y.group(1),</highlight><highlight class="keywordtype">None</highlight><highlight class="normal">)])</highlight></codeline> <codeline lineno="31"><highlight class="normal"></highlight><highlight class="comment">#<sp/>add<sp/>API<sp/>header<sp/>file</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="32"><highlight class="normal">API_h<sp/>=<sp/>os.environ[</highlight><highlight class="stringliteral">'BINARY_C'</highlight><highlight class="normal">]<sp/>+<sp/></highlight><highlight class="stringliteral">'/src/API/binary_c_API.h'</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="33"><highlight class="normal">binary_c_define_macros.extend([(</highlight><highlight class="stringliteral">'BINARY_C_API_H'</highlight><highlight class="normal">,API_h)])</highlight></codeline> <codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline> <codeline lineno="35"><highlight class="normal">setup(</highlight></codeline> <codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/>name=</highlight><highlight class="stringliteral">'binary_c'</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/>version=</highlight><highlight class="stringliteral">'1.0'</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/>description=</highlight><highlight class="stringliteral">'This<sp/>is<sp/>a<sp/>python<sp/>API<sp/>for<sp/>binary_c<sp/>by<sp/>Rob<sp/>Izzard<sp/>and<sp/>collaborators'</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/>author=</highlight><highlight class="stringliteral">'Jeff<sp/>Andrews<sp/>and<sp/>Robert<sp/>Izzard<sp/>and<sp/>David<sp/>Hendriks'</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/>author_email=</highlight><highlight class="stringliteral">'andrews@physics.uoc.gr<sp/>and<sp/>r.izzard@surrey.ac.uk<sp/>and<sp/>rob.izzard@gmail.com<sp/>and<sp/>dhendriks93@gmail.com'</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="41"><highlight class="normal">license=</highlight><highlight class="stringliteral">''</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/>ext_modules=[Extension(</highlight><highlight class="stringliteral">"binary_c"</highlight><highlight class="normal">,</highlight></codeline> <codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[</highlight><highlight class="stringliteral">"binary_c_python.c"</highlight><highlight class="normal">],</highlight></codeline> <codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>libraries<sp/>=<sp/>[</highlight><highlight class="stringliteral">'binary_c'</highlight><highlight class="normal">]<sp/>+<sp/>binary_c_libs<sp/>+<sp/>[</highlight><highlight class="stringliteral">'binary_c_api'</highlight><highlight class="normal">],</highlight></codeline> <codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>include_dirs<sp/>=<sp/>[os.environ[</highlight><highlight class="stringliteral">'BINARY_C'</highlight><highlight class="normal">]<sp/>+<sp/></highlight><highlight class="stringliteral">'/src'</highlight><highlight class="normal">,<sp/>os.environ[</highlight><highlight class="stringliteral">'BINARY_C'</highlight><highlight class="normal">]<sp/>+<sp/></highlight><highlight class="stringliteral">'/src/API'</highlight><highlight class="normal">]<sp/>+<sp/>binary_c_incdirs,</highlight></codeline> <codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>library_dirs<sp/>=<sp/>[os.environ[</highlight><highlight class="stringliteral">'BINARY_C'</highlight><highlight class="normal">]<sp/>+<sp/></highlight><highlight class="stringliteral">'/src'</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">'./'</highlight><highlight class="normal">]<sp/>+<sp/>binary_c_libdirs,</highlight></codeline> <codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>runtime_library_dirs<sp/>=<sp/>[os.environ[</highlight><highlight class="stringliteral">'BINARY_C'</highlight><highlight class="normal">]+</highlight><highlight class="stringliteral">'/src'</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">'./'</highlight><highlight class="normal">]<sp/>+<sp/>binary_c_libdirs,</highlight></codeline> <codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>define_macros<sp/>=<sp/>[]<sp/>+<sp/>binary_c_define_macros,</highlight></codeline> <codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>extra_objects<sp/>=<sp/>[],</highlight></codeline> <codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>extra_compile_args<sp/>=<sp/>[],</highlight></codeline> <codeline lineno="51"><highlight class="normal"></highlight></codeline> <codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/>)]<sp/><sp/></highlight><highlight class="comment">#<sp/>binary_c<sp/>must<sp/>be<sp/>loaded</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="53"><highlight class="normal">)</highlight></codeline> </programlisting> <location file="setup.py"/> </compounddef> </doxygen>