我正在使用cmake为我们的项目生成visual studio解决方案文件。
结构是
/CmakeLists.txt
/include/
/src/
/file1.algspec
/file2.algspec
/file3.algspec
我在下面包含了我当前的cmakelists文件。 (注意它是一个opencv模块,所以如果opencvs cmake中有任何东西有帮助,可以使用。
我希望它将上面列出的文件夹结构中algspec类型的所有文件都包含在一个项目文件夹中,就像opencv正在为include和src文件做的那样。文件夹名称可以是“specs”
set(the_description "Ascend OpenCV Features")
ocv_define_module(ascend_features opencv_highgui opencv_features2d)
set_target_properties(${PROJECT_NAME} PROPERTIES VS_DOTNET_REFERENCES "System;System.Core")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/clr /EHa")
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /AI\"C:\\dev\\ascendprojects\\Ascend Azure Pipeline\\Ascend.Algorithms\\Ascend.Algorithms.Interface\\bin\\x64\\Release\" ")
if(CMAKE_CXX_FLAGS_DEBUG MATCHES "/RTC1")
string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
endif()
if(CMAKE_CXX_FLAGS MATCHES "/EHsc")
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
message(STATUS ${the_module})
如果可能的话,也可以更新我的cmakeslist以使它导入的dll导入到可以在cmake gui中设置的设置。否则这将是一个新问题。
答案 0 :(得分:0)
这是解决方案。
没有办法让他们进入文件夹
set(the_description "Ascend OpenCV Features")
macro(ocv_get_module_external_sources)
file(GLOB SPECS "*.algspec")
set(__filesvar "OPENCV_MODULE_${the_module}_HEADERS")
list(APPEND ${__filesvar} ${SPECS} )
endmacro()
ocv_define_module(ascend_features opencv_highgui opencv_features2d opencv_nonfree)
set_target_properties(${PROJECT_NAME} PROPERTIES VS_DOTNET_REFERENCES "System;System.Core")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/clr /EHa")
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /AI\"C:\\dev\\ascendprojects\\Ascend Azure Pipeline\\Ascend.Algorithms\\Ascend.Algorithms.Interface\\bin\\x64\\Release\" ")
if(CMAKE_CXX_FLAGS_DEBUG MATCHES "/RTC1")
string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
endif()
if(CMAKE_CXX_FLAGS MATCHES "/EHsc")
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
message(STATUS ${the_module})