1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/oneph-hybridMPIC

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
precompile.py 2.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
oneph Отправлено 26.06.2016 14:46 55712c2
#!/usr/bin/python
import sys
if len(sys.argv) < 2:
inf = "load.inp"
denfunc = "denfunc.h"
else:
inf = sys.argv[1] + "/load.inp"
denfunc = sys.argv[1] + "/denfunc.h"
folder = sys.argv[1]
print "using inp file " + inf
outf = folder + "/userdef.h"
ofile = open(outf, 'w')
file_obj = open(inf, 'r')
ofile.writelines("#ifndef __User\n")
ofile.writelines("")
ofile.writelines("#define __User\n")
ofile.writelines("#include \"physicalconstants.h\"\n")
mpiflag = 0
ompflag = 0
debugflag = 0
prgname = ""
for line in file_obj:
if '__Debug' in line and '1' in line:
debugflag = 1
print line
if '#' in line:
continue
if line != '' and '=' in line and "#" not in line and "mpi" not in line and "omp" not in line:
print "setting ", line
var = line.split('=')
if var[0].strip() == "program":
print 'var 0', var[0], var[-1]
prgname = var[-1].strip()
else:
ofile.writelines("#define " + var[0] + " " + var[-1])
if "use_mpi" in line:
if "1" in line:
mpiflag = 1
print "will use mpi"
ofile.writelines("#define __MPI 1\n")
else:
print "will run in seriel mode without MPI support"
if "omp" in line:
if "1" in line:
ompflag = 1
print "will use omp"
ofile.writelines("#define __OMP 1\n")
else:
ofile.writelines("#define __OMP 0\n")
print "will run in seriel mode without omp support"
ofile.writelines("#endif")
file_obj.close()
ofile.close()
outf = "CMakeLists.txt"
ofile = open(outf, 'w')
print "will generate ", prgname
openmpipara = ''
debugpara = ''
compiler = "g++"
if ompflag:
openmpipara = ' -fopenmp '
if debugflag:
debugpara = ' -g -O0 '
print "will run in debug mode"
else:
debugpara = ' -O6 '
if mpiflag:
compiler = "mpic++"
cxx_flags = openmpipara + debugpara + "-fPIC -std=c++11 -static"
ofile.writelines("cmake_minimum_required(VERSION 3.1)\n")
ofile.writelines("PROJECT(" + prgname + ")\n")
ofile.writelines("FILE(GLOB SRC \"" + folder +"/" + prgname + ".cpp\")\n")
ofile.writelines("INCLUDE_DIRECTORIES(\"./src\" \"" + "./" + folder + "\")\n")
ofile.writelines("SET(CMAKE_CXX_COMPILER \"" + compiler + "\")\n")
ofile.writelines("SET(CMAKE_CXX_FLAGS \"" + cxx_flags + "\")\n")
ofile.writelines("ADD_EXECUTABLE(" + prgname + " ${SRC})\n")
ofile.close()

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/oneph-hybridMPIC.git
git@api.gitlife.ru:oschina-mirror/oneph-hybridMPIC.git
oschina-mirror
oneph-hybridMPIC
oneph-hybridMPIC
master