Przerobienie wywołania g++ na CMakeLists.txt tak by NetBeans ogarniał

0

W katalogu mam sobie pliki:
main.cpp mwc64x.hpp sortalgocommon.hpp sortheapsimddwordcascadingvariantb.hpp

Kompilacja odbywa się wywołaniem:

g++ -std=c++11 -O2 -Dxstr(s)=str(s) -Dstr(s)=#s -DSORT_ALGO=SimdDwordCascadingHeapSortVariantB -DSORT_HEADER=sortheapsimddwordcascadingvariantb.hpp -DSORT_SIMD -fopenmp -mavx2 -o program main.cpp

Chcę utworzyć plik CMakeLists.txt tak by móc stworzyć projekt z tych plików w NetBeansie. Jak na razie mój plik CMakeLists.txt wygląda tak:

cmake_minimum_required (VERSION 2.8)
project (SortAlgo)
add_definitions("-Dxstr(s)=str(s)" "-Dstr(s)=#s" "-DSORT_ALGO=SimdDwordCascadingHeapSortVariantB" "-DSORT_HEADER=sortheapsimddwordcascadingvariantb.hpp" "-DSORT_SIMD")
add_executable(SortAlgo main.cpp

Ale NetBeans strajkuje - "Running make failed". Wyjście w NetBeansie:

Scanning dependencies of target SortAlgo
[100%] Building CXX object CMakeFiles/SortAlgo.dir/main.cpp.o
/bin/sh: 1: Syntax error: "(" unexpected
make[2]: *** [CMakeFiles/SortAlgo.dir/main.cpp.o] Błąd 2
make[1]: *** [CMakeFiles/SortAlgo.dir/all] Błąd 2
make: *** [all] Błąd 2

MAKE FAILED (exit value 2, total time: 69ms)

Co zrobić, żeby projekt się budował i odpalał w NetBeansie?

Kolejny problem to to, że kilku opcji nie przeniosłem do CMakeLists.txt, np "-std=c++11", "-O2", "-fopenmp", "-mavx2". Gdzie je wrzucić?

0

OK. Wygląda na to, że część rozwiązania mam. Te znaczki: -Dxstr(s)=str(s) -Dstr(s)=#s powodują problemy, które ominąłem tworząc plik z dyrektywami #define. Zostało tylko przeportowanie reszty flag i będzie gotowe, mam nadzieję.

Edit:
OK. Z tym sobie też poradziłem, dzięki: http://stackoverflow.com/questions/11783932/how-to-add-linker-or-compile-flag-in-cmake-file
Teraz mój CMakeLists.txt wygląda tak:

cmake_minimum_required (VERSION 2.8)
project (SortAlgo)
set(PROJECT_COMPILE_FLAGS "-std=c++11 -O2 -fopenmp -mavx2")
set(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${PROJECT_COMPILE_FLAGS}" )
add_definitions(-DSORT_ALGO=SimdDwordCascadingHeapSortVariantB -DSORT_HEADER=sortheapsimddwordcascadingvariantb.hpp -DSORT_SIMD)
add_executable(SortAlgo main.cpp)

NetBeans mniej więcej ogarnia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1