c++ - pass variable value to make using cmake -


i'm trying like

cmake -duse_files_for_input=on .. 

and make compile files -duse_files_for_input=on. don't =on value. seems should written flags.make file, isn't:

$ grep use_files_for_input source/cmakefiles/myprogram.dir/flags.make cxx_defines = -duse_files_for_input 

if manually change file -duse_files_for_input=on works fine. how can cmake add value in flags.make?

a different approach need do: variable using has type bool, enough get

cxx_defines = -duse_files_for_input when cmake -duse_files_for_input=on .. , cxx_defines = when cmake -duse_files_for_input=off ..

is possible?

here small demonstration,

// demo.cpp #include <iostream> using namespace std;  int main() { #ifdef use_files_for_input     cout << "using files.." << endl; #else     cout << "not using files.." << endl; #endif       return 0; } 

the cmakelists.txt,

cmake_minimum_required(version 3.0)  add_executable(demo demo.cpp)  if (use_files_for_input)     add_definitions(-duse_files_for_input) endif() 

and sample output,

baris$ cmake . && make && ./demo <...> not using files..  baris$ cmake -duse_files_for_input=on . && make && ./demo <...> using files.. 

Comments