I am trying to build google flatbuffers (https://github.com/google/flatbuffers) in Linux. I need to change the default values of some cache variables after generating the makefile. However to change all of them I need to execute the cmake command twice. Once to change the advanced variables and then again to chance the non-advanced variables (in no particular order). I cannot change them in one go. Why is this so?
Steps:
-
cmake … -G “Unix Makefiles”
-
cmake -LA .
– Configuring done
– Generating done
– Build files have been written to: /flatbuffers-1.10.0/linux_build
– Cache values
CMAKE_ADDR2LINE:FILEPATH=/bin/addr2line
CMAKE_AR:FILEPATH=/bin/ar
CMAKE_BUILD_TYPE:STRING=
CMAKE_COLOR_MAKEFILE:BOOL=ON
CMAKE_CXX_COMPILER:FILEPATH=/bin/c++
CMAKE_CXX_COMPILER_AR:FILEPATH=/bin/gcc-ar
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/bin/gcc-ranlib
CMAKE_CXX_FLAGS:STRING=
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
CMAKE_C_COMPILER:FILEPATH=/bin/cc
CMAKE_C_COMPILER_AR:FILEPATH=/bin/gcc-ar
CMAKE_C_COMPILER_RANLIB:FILEPATH=/bin/gcc-ranlib
CMAKE_C_FLAGS:STRING=
CMAKE_C_FLAGS_DEBUG:STRING=-g
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
CMAKE_INSTALL_BINDIR:PATH=bin
CMAKE_INSTALL_DATADIR:PATH=
CMAKE_INSTALL_DATAROOTDIR:PATH=share
CMAKE_INSTALL_DOCDIR:PATH=
CMAKE_INSTALL_INCLUDEDIR:PATH=include
CMAKE_INSTALL_INFODIR:PATH=
CMAKE_INSTALL_LIBDIR:PATH=lib64
CMAKE_INSTALL_LIBEXECDIR:PATH=libexec
CMAKE_INSTALL_LOCALEDIR:PATH=
CMAKE_INSTALL_LOCALSTATEDIR:PATH=var
CMAKE_INSTALL_MANDIR:PATH=
CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include
CMAKE_INSTALL_PREFIX:PATH=/usr/local
CMAKE_INSTALL_RUNSTATEDIR:PATH=
CMAKE_INSTALL_SBINDIR:PATH=sbin
CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
CMAKE_INSTALL_SYSCONFDIR:PATH=etc
CMAKE_LINKER:FILEPATH=/bin/ld
CMAKE_MAKE_PROGRAM:FILEPATH=/bin/gmake
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
CMAKE_NM:FILEPATH=/bin/nm
CMAKE_OBJCOPY:FILEPATH=/bin/objcopy
CMAKE_OBJDUMP:FILEPATH=/bin/objdump
CMAKE_RANLIB:FILEPATH=/bin/ranlib
CMAKE_READELF:FILEPATH=/bin/readelf
CMAKE_SHARED_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
CMAKE_SKIP_RPATH:BOOL=NO
CMAKE_STATIC_LINKER_FLAGS:STRING=
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
CMAKE_STRIP:FILEPATH=/bin/strip
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
FLATBUFFERS_BUILD_FLATC:BOOL=ON
FLATBUFFERS_BUILD_FLATHASH:BOOL=ON
FLATBUFFERS_BUILD_FLATLIB:BOOL=ON
FLATBUFFERS_BUILD_GRPCTEST:BOOL=OFF
FLATBUFFERS_BUILD_SHAREDLIB:BOOL=OFF
FLATBUFFERS_BUILD_TESTS:BOOL=ON
FLATBUFFERS_CODE_COVERAGE:BOOL=OFF
FLATBUFFERS_INSTALL:BOOL=ON
FLATBUFFERS_LIBCXX_WITH_CLANG:BOOL=ON
GIT:FILEPATH=/bin/git -
cmake -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_BUILD_SHAREDLIB=ON -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF -DCMAKE_C_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/gcc -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/g++ -DCMAKE_BUILD_TYPE=Release .
At the above step only the advanced variables (marked in bold) are modified. I have to issue the command again with just the non-advanced variables to change their values
- cmake -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_BUILD_SHAREDLIB=ON -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF -DCMAKE_BUILD_TYPE=Release .