Cmake Problem / Verständnis



  • Hey,

    Ich habe ein CMake file gebaut, welches einfach nur, je nach Betriebssystem, eine unterschiedliche Datei einbinden soll.

    cmake_minimum_required(VERSION 3.10)
    project(DirectoryHandler)
    
    if(UNIX AND NOT APPLE AND NOT LINUX)
        set(WIN32 TRUE)
    else(UNIX AND NOT APPLE AND NOT WIN32)
        set(LINUX TRUE)
    endif()
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
    
    add_subdirectory(lib/googletest-1.8.0)
    
    include_directories(lib/googletest-1.8.0/googletest/include)
    
    if(LINUX)
        add_executable(DirectoryHandler main.cpp linux/DirectoryHandler.h linux/DirectoryHandler.cpp linux/tests/DirectoryHandler_create.cpp linux/tests/DirectoryHandler_backToParentDirectory.cpp)
    endif()
    
    if(WIN32)
        add_executable(DirectoryHandler main.cpp windows/DirectoryHandler.h windows/DirectoryHandler.cpp windows/tests/DirectoryHandler_create.cpp windows/tests/DirectoryHandler_backToParentDirectory.cpp)
    endif()
    
    target_link_libraries(DirectoryHandler gtest gtest_main)
    

    Irgendwie will das aber nicht so richtig klappen. Wenn ich es auf windows teste geht es. Wenn ich es auf Linux teste nicht. Drehe ich oben das if um, so funktioniert es zwar auf Linux, aber nicht auf Windows... so als würde das else() gar nicht berücksichtigt werden. Hat Jemand eine Idee?

    Danke schon mal!



  • Warum die Abfrage "UNIX AND NOT APPLE AND ...", um dann explizit WIN32 zu setzen? WIN32 ist doch kein UNIX.

    Diese Variable ist aber doch schon gesetzt: CMake: Checking platform
    Nur LINUX anscheinend nicht, aber das kannst du ja (in deinem Fall) mit UNIX gleichsetzen.



  • @th69 sagte in Cmake Problem / Verständnis:

    APPLE

    Apropo ... wisst ihr, wie man Laptoptaschen für Macbooks nennt?



  • Apfeltasche?
        



  • @Th69

    Danke Dir!

    Ich hatte viel rumprobiert. Das Problem war zwar UNIX, allerdings auch die Tatsache, dass Cygwin wohl irgendwie auch im UNIX Schlüsselwort enthalten ist, was ja aus deinem Link auch hervorgeht.

    @Swordfish

    Hau raus 😏



  • @padmad sagte in Cmake Problem / Verständnis:

    Hau raus

    @hustbaer hat's eh schon verraten.