File: make_conv.py

package info (click to toggle)
freemat 4.0-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 174,736 kB
  • ctags: 67,053
  • sloc: cpp: 351,060; ansic: 255,892; sh: 40,590; makefile: 4,323; perl: 4,058; asm: 3,313; pascal: 2,718; fortran: 1,722; ada: 1,681; ml: 1,360; cs: 879; csh: 795; python: 430; sed: 162; lisp: 160; awk: 5
file content (39 lines) | stat: -rw-r--r-- 1,220 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#This is a hack for generating cmake files

import os
import re

#os.chdir(r"UMFPACK")

f=file("make_rules",'r');
lines=f.readlines()
f.close()

source_files=""
f=file("make_rules.cmake",'w')
for line in lines:

    defs=re.findall('(?<=-D)\w+',line)
    source=re.findall('(?<=-c\s../)\S*',line)
    source=source[0]
    output=re.findall('(?<=-o\s)\S*',line)
    output=" ${CMAKE_CURRENT_BINARY_DIR}/Source/" + re.sub('\.o','.c',output[0])
   
    o_str="CONFIGURE_FILE( \n"
    o_str+="${CMAKE_CURRENT_SOURCE_DIR}/"+source
    o_str+=output+"\n"
    o_str+=" COPYONLY)\n"
    source_files += output + '\n'
    f.writelines(o_str)
    dep_str ="SET_SOURCE_FILES_PROPERTIES( " + output + " PROPERTIES "
    if len(defs)> 0 :
        dep_str += ' COMPILE_FLAGS "'
        for d in defs: 
            dep_str += ' -D' + d
        dep_str += ' "'
    dep_str += " OBJECT_DEPENDS " + "${CMAKE_CURRENT_SOURCE_DIR}/" + source
    dep_str += " GENERATED 1)\n"
    f.writelines( dep_str )
#    f.writelines( "MACRO_ADD_FILE_DEPENDENCIES( " + output + " " + "${CMAKE_CURRENT_SOURCE_DIR}/" + source + " " +" )\n")
f.writelines( "ADD_LIBRARY( umfpack \n" + source_files + " )\n" )
f.close()