我试图避免的cmake find_package使用FindJPEG.cmake从系统中,我创建了FindJPEG.cmake的副本,并改变了一点,把它付诸表决的消息(状态“...”)作为能够者区分它,是这样的:
...
message(STATUS "MY CUSTOM JPEG FIND SCRIPT")
if(NOT JPEG_LIBRARY)
message(STATUS "MY CUSTOM JPEG FIND SCRIPT >> FIRST TIME FIND LIBRARY")
find_library(JPEG_LIBRARY_RELEASE NAMES ${jpeg_names})
...
然后我复制这个变化的scritp到/我的/定制/模块/路径,然后我开始我cmake的配置与:
cmake .. -DCMAKE_MODULE_PATH=/my/custom/module/path;${CMAKE_MODULE_PATH}
如果在我的CMakeLists.txt我只能调用find_package(JPEG)一切正常(显示自定义消息) 但后来我加入我的CMakeLists.txt碧玉的依赖,这也取决于JPEG。因此,我只需要执行一次find_package(Jasper),JPEG依赖项将由jasper加载。
随着最后一个问题是,我FindJPEG.cmake改变脚本现在不叫,我以为这是因为在当前目录下的CMAKE_MODULE_PATH搜索顺序先开始...不要按照顺序由我指定的CMake命令行。
我们可以改变这种行为吗?或者,如果我在解释这种错误,那么有人可以更好地解释为什么会这样吗?
谢谢 努诺
答案 0 :(得分:2)
如果要使用自己的自定义模块路径进行运输,请使用:
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake)
在项目开始时,这是通常的模式,使用CMake
文件夹cmake
存放新FindJPEG.cmake
文件。
然后,您可能还希望查看一些变量,例如CMAKE_LIBRARY_PATH,这些变量可能足以更改搜索路径而无需重写新的<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="App">
<select ng-controller="UserSelection as User" ng-model="User.UserSelected" ng-change="User.onSelectChange()" ng-init="User.UserSelected='--select--'">
<option value="--select--">--select--</option>
<option value="SAP_Executive">SAP Executive</option>
<option value="Fiber_Engineer">Fiber Engineer</option>
<option value="Fiber_Lead">Fiber Lead</option>
<option value="CMM">CMM</option>
</select>
</div>
<script>
angular.module('App', [])
.controller('UserSelection', function () {
var User = this;
User.onSelectChange = function () {
alert('change value selected');
};
});
</script>
</body>
</html>
。
答案 1 :(得分:0)
;因此您必须使用引号转义-DCMAKE_MODULE_PATH =“ .....”