如何将qmake项目移植到cmake [英] How to port a qmake project to cmake
问题描述
我想移植" 此C ++项目,该项目使用 qmake
(即 Tool.pro 文件),到 cmake
.
I would like to "port" this C++ project, which uses qmake
(i.e., a Tool.pro file) for building, to cmake
.
本质上,我想问一下如何通过查看上面的 Tool.pro
文件来编写必要的 CMakeLists.txt
文件.
Essentially, I'm asking how to go about writing the necessary CMakeLists.txt
file(s) by looking at the Tool.pro
file above.
这是我到目前为止所做的:
This is what I've done so far:
include_directories(../lib/cudd-2.5.0/include BFAbstractionLibrary)
add_executable(slugs BFAbstractionLibrary/bddDump.cpp BFAbstractionLibrary/BFCuddVarVector.cpp BFAbstractionLibrary/BFCudd.cpp BFAbstractionLibrary/BFCuddManager.cpp \
BFAbstractionLibrary/BFCuddVarCube.cpp tools.cpp synthesisAlgorithm.cpp synthesisContextBasics.cpp variableManager.cpp \
BFAbstractionLibrary/BFCuddMintermEnumerator.cpp)
add_library(lcudd ../lib/cudd-2.5.0/cudd)
add_library(ldddmp ../lib/cudd-2.5.0/dddmp)
add_library(lmtr ../lib/cudd-2.5.0/mtr)
add_library(lepd ../lib/cudd-2.5.0/epd)
add_library(lst ../lib/cudd-2.5.0/st)
add_library(lutil ../lib/cudd-2.5.0/util)
target_link_libraries(slugs lcudd, lutil, lmtr, lst, ldddmp, lepd)
这肯定缺少 Tool.pro
文件中存在的标题.我也不确定 Tool.pro
文件的前24行中的标志有什么用.
This is definitely missing the headers that are present in the Tool.pro
file. I'm also not sure what I have to do with the flags in the first 24 lines of the Tool.pro
file.
能给我指出正确的方向吗?
Could you point me in the right direction please?
- PS1.我已经看过CMake教程.
- PS2.我试过了两个脚本:
q2c
,qmake2cmake
.前者建造了一个本质上空的CMakeLists.txt
文件.后者建造了一个貌似还可以的文件,但随后make
失败,因为它找不到某些头文件(位于子目录中). - PS3.我已经使用
qmake
成功构建了项目.
- PS1. I have already looked at the CMake Tutorial.
- PS2. I have tried
two scripts:
q2c
,qmake2cmake
. The former built an essentially emptyCMakeLists.txt
file. The latter built a seemingly OK file but thenmake
failed saying it couldn't find some header file (which is located in a subdirectory). - PS3. I have successfully built the project with
qmake
.
推荐答案
在牺牲了上面 Tool.pro
文件的某些模块化和复杂性之后,我能够使用 cmake
.这是我编写的 CMakeLists.txt
文件:
After sacrificing some of the modularity and complexity of the Tool.pro
file above, I was able to build the project using cmake
. Here's the CMakeLists.txt
file that I wrote:
project( slugs )
cmake_minimum_required( VERSION 2.6 )
add_definitions ( -Wall )
add_definitions ( -D USE_CUDD )
set ( BDDFLAGS "-mtune=native -malign-double -DHAVE_IEEE_754 -DBSD -DCUDD_COMPILER_OPTIONS_SET" ) # hardcoded for x86_64
add_definitions ( ${BDDFLAGS} )
set ( CMAKE_BUILD_TYPE Debug )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=gnu++0x -Wall -Wextra ${BDDFLAGS}")
include_directories ( ../lib/cudd-2.5.0/include BFAbstractionLibrary )
set ( slugs_HDRS
BFAbstractionLibrary/BF.h
BFAbstractionLibrary/BFCudd.h
gr1context.hpp
variableTypes.hpp
variableManager.hpp
extensionExtractExplicitStrategy.hpp
extensionRoboticsSemantics.hpp
extensionWeakenSafetyAssumptions.hpp
extensionBiasForAction.hpp
extensionComputeCNFFormOfTheSpecification.hpp
extensionCounterstrategy.hpp
extensionExtractExplicitCounterstrategy.hpp
extensionIncrementalSynthesis.hpp
extensionFixedPointRecycling.hpp
extensionInteractiveStrategy.hpp
extensionIROSfastslow.hpp
extensionAnalyzeInitialPositions.hpp
extensionAnalyzeAssumptions.hpp
BFAbstractionLibrary/BFCuddMintermEnumerator.h
extensionComputeInterestingRunOfTheSystem.hpp
extensionAnalyzeSafetyLivenessInteraction.hpp
extensionAbstractWinningTraceGenerator.hpp
extensionInterleave.hpp
extensionPermissiveExplicitStrategy.hpp
extensionIncompleteInformationEstimatorSynthesis.hpp
extensionNondeterministicMotion.hpp
extensionExtractSymbolicStrategy.hpp
extensionTwoDimensionalCost.hpp
)
set ( slugs_SRCS
main.cpp
BFAbstractionLibrary/bddDump.cpp
BFAbstractionLibrary/BFCuddVarVector.cpp
BFAbstractionLibrary/BFCudd.cpp
BFAbstractionLibrary/BFCuddManager.cpp
BFAbstractionLibrary/BFCuddVarCube.cpp
tools.cpp
synthesisAlgorithm.cpp
synthesisContextBasics.cpp
variableManager.cpp
BFAbstractionLibrary/BFCuddMintermEnumerator.cpp
)
set ( slugs_LIBS
-L../lib/cudd-2.5.0/cudd
-L../lib/cudd-2.5.0/util
-L../lib/cudd-2.5.0/mtr
-L../lib/cudd-2.5.0/st
-L../lib/cudd-2.5.0/dddmp
-L../lib/cudd-2.5.0/epd
-lcudd
-ldddmp
-lmtr
-lepd
-lst
-lutil
)
add_executable ( slugs ${slugs_SRCS} )
target_link_libraries (slugs ${slugs_LIBS})
这篇关于如何将qmake项目移植到cmake的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!