2015-03-02 5 views
2

Я хотел бы «порт» this C++ project, который использует qmake (т. Е. Файл Tool.pro) для строительства, до cmake.Как перенести проект qmake на cmake

По существу, я прошу, как писать необходимые файлы CMakeLists.txt, посмотрев файл Tool.pro выше.

Это то, что я сделал до сих пор:

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. Я также не уверен, что мне нужно делать с флагами в первых 24 строках файла Tool.pro.

Не могли бы вы указать мне в правильном направлении, пожалуйста?

  • PS1. Я уже посмотрел учебник CMake.
  • PS2. Я пробовал два сценария: q2c, qmake2cmake. Первый построил по существу пустой файл CMakeLists.txt. Последний построил, казалось бы, файл OK , но затем make не смог сказать, что он не смог найти файл заголовка (который находится в подкаталоге).
  • PS3. Я успешно построил проект с qmake.
+0

У меня нет ответа, но вы уверены, что вы проверили все имеющиеся ресурсы? Первые три результата для стандартного поиска Google дают эти довольно красивые ресурсы (извините, не могу отформатировать это): http://www.executionunit.com/blog/2014/01/22/moving-from-qmake- to-cmake/http://www.cmake.org/Wiki/CMake:ConvertFromQmake https://wiki.sofa-framework.org/wiki/SwitchingToCMake –

+0

Я проверил первый из трех. Я посмотрю на двух других, спасибо! –

+0

См. Https://stackoverflow.com/questions/43763416/how-to-convert-qmake-to-cmake –

ответ

2

После умерщвления некоторых модульности и сложности Tool.pro файла выше, я был в состоянии построить проект с использованием cmake. Вот файл CMakeLists.txt, что я писал:

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}) 
Смежные вопросы