1 proc recglob
{ basedir pattern
} {
2 set dirlist
[glob -nocomplain -directory $basedir -type d
*]
3 set findlist
[glob -nocomplain -directory $basedir $pattern]
5 set reclist
[recglob
$dir $pattern]
6 set findlist
[concat $findlist $reclist]
11 proc findincludedir
{ basedir pattern
} {
12 #find all subdirectories containing ".vh" files
13 set vhfiles
[recglob
$basedir $pattern]
15 foreach match
$vhfiles {
16 lappend vhdirs
[file dir
$match]
18 set uniquevhdirs
[lsort -unique $vhdirs]
23 update_ip_catalog
-rebuild
25 source [file join $scriptdir ip.tcl
]
27 # AR 58526 <http://www.xilinx.com/support/answers/58526.html>
28 set_property GENERATE_SYNTH_CHECKPOINT
{false
} [get_files
-all {*.xci
}]
30 generate_target all
$obj
31 export_ip_user_files
-of_objects $obj -no_script -force
33 set obj
[current_fileset
]
35 # Xilinx bug workaround
36 # scrape IP tree for directories containing .vh files
37 # [get_property include_dirs] misses all IP core subdirectory includes if user has specified -dir flag in create_ip
38 set property_include_dirs
[get_property include_dirs
$obj]
39 set ip_include_dirs
[concat $property_include_dirs [findincludedir
$ipdir "*.vh"]]
40 set ip_include_dirs
[concat $ip_include_dirs [findincludedir
$srcdir "*.h"]]
41 set ip_include_dirs
[concat $ip_include_dirs [findincludedir
$srcdir "*.vh"]]