请考虑以下结构:
set(_hdr
inc/proj1.h
../common/inc/common1.h
)
set(_src
src/proj1.cxx
../common/src/common1a.cxx
../common/src/common1b.cxx
)
source_group("common\\inc" FILES
../common/inc/common1.h
)
source_group("common\\src" FILES
../common/src/common1a.cxx
../common/src/common1b.cxx
)
source_group("inc" FILES inc/proj1.h)
source_group("src" FILES src/proj1.cxx)
add_executable( project1 ${_src} ${_hdr} )
Project1和Project2是分开的项目。 他们都使用通用代码。 我想(有选择地)将一些常见的源文件列入每个项目的visual studio项目文件中,以便我可以在IDE中编辑它们。 我不想要一个用于公共代码的独立库。
现在我使用相对路径,例如,在project1的cmake文件中:
$q_fn = mysql_query("SELECT deptname FROM functiontb ") ;
$storeArray = Array();
while ($row = mysql_fetch_array($q_fn, MYSQL_ASSOC)) {
$storeArray[] = $row['deptname'];
}
foreach($storeArray as $sa)
{ ?>
<tr >
<td><?php echo $sa ?></td>
<?php
$q_audit=mysql_query("SELECT * FROM scheduletb where department = '$sa' ") );
while($r= mysql_fetch_assoc($q_audit)){
$month=date("F",strtotime($r['tdate']));?>
<td <?php
if($month == 'January'){
?> bgcolor="#1E90FF">
<?php } ?>
</td>
<td <?php
if($month == 'February'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'March'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'April'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'May'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'June'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'July'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'August'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'September'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'October'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'November'){
?> bgcolor="#1E90FF">
<?php }
?></td>
<td <?php
if($month == 'December'){
?> bgcolor="#1E90FF">
<?php }
?> </td>
</tr>
<?php }
} ?>
这不灵活 - 如果我想移动文件夹,必须检查和修改所有CMakeLists.txt。 是否有更优雅的方式来解耦依赖关系,或者什么是处理常见源文件的更好方法?
欢迎任何建议。 非常感谢。
答案 0 :(得分:0)
You may set variable to the path to 'common' folder, and use it for refer to files in it. So, whenever you need to move 'common' folder around, you need to edit only this variable.
CMakeLists.txt:
set(COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common)
project1/CMakeLists.txt:
set(_hdr
inc/proj1.h
${COMMON_DIR}/inc/common1.h
)
set(_src
src/proj1.cxx
${COMMON_DIR}/src/common1a.cxx
${COMMON_DIR}/src/common1b.cxx
)
...