[CMake] CMake and shared|static/release|debug?
Johannes Zarl
johannes.zarl at jku.at
Wed Feb 5 06:17:05 EST 2014
Hi,
On Tuesday, 4. February 2014, 23:41:55, Littlefield, Tyler wrote:
> I've tried this a few different ways and ran into issues. If someone
> wouldn't mind pointing out where I'm going wrong, I would appreciate it.
> (for example if there's a better way to do what I'm trying).
It would help if you also included a textual description of the thing you want
to achieve and your issues. Since the cmake compiler does not do what you want
it to do, it is quite plausible that the people on this list having a good
understanding of cmake will misinterpret your cmake code...
That aside, as Jakub pointed out, it seems that you try to reimplement the
CMAKE_BUILD_TYPE support on your own.
As to the shared library stuff: CMake can already build shared and static
libraries in the same build:
set( MYLIB_SRCS mylibsource1.cxx mylibsource2.cxx)
add_library( mylib-static STATIC ${MYLIB_SRCS})
add_library( mylib-static SHARED ${MYLIB_SRCS})
If you want to make it a choice, you could do it like this:
set( BUILD_LIBTYPE SHARED CACHE STRING "SHARED or STATIC" )
# enforce string in the gui:
set_property(CACHE BUILD_LIBTYPE PROPERTY STRINGS SHARED STATIC)
if ( NOT BUILD_LIBTYPE STREQUAL STATIC )
set ( BUILD_LIBTYPE SHARED CACHE STRING "" FORCE)
endif()
add_library( mylib-static ${BUILD_LIBTYPE} ${MYLIB_SRCS})
HTH,
Johannes
More information about the CMake
mailing list