--- /dev/null
+diff --git a/build-cmake/CMakeLists.txt b/build-cmake/CMakeLists.txt
+index bc1728f..7c6a04d 100644
+--- a/build-cmake/CMakeLists.txt
++++ b/build-cmake/CMakeLists.txt
+@@ -61,11 +61,15 @@ if (MSVC AND MSVC_STATIC_BUILD)
+ endif(${flag_var} MATCHES "/MD")
+ endforeach(flag_var)
+ endif (MSVC AND MSVC_STATIC_BUILD)
++
++IF(WITH_TOOLS)
+ FILE(GLOB PROTOC_GEN_C_SRC ${MAIN_DIR}/protoc-c/*.h ${MAIN_DIR}/protoc-c/*.cc )
+ ADD_EXECUTABLE(protoc-gen-c ${PROTOC_GEN_C_SRC})
+
+ TARGET_LINK_LIBRARIES(protoc-gen-c ${PROTOBUF_PROTOC_LIBRARY} ${PROTOBUF_LIBRARY})
++ENDIF()
+
++IF(WITH_TEST AND WITH_TOOLS)
+ IF(CMAKE_HOST_UNIX)
+ ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ln -sf protoc-gen-c protoc-c
+@@ -79,8 +83,6 @@ FUNCTION(GENERATE_TEST_SOURCES PROTO_FILE SRC HDR)
+ DEPENDS protoc-gen-c)
+ ENDFUNCTION()
+
+-
+-IF(CMAKE_BUILD_TYPE MATCHES Debug)
+ ENABLE_TESTING()
+
+ GENERATE_TEST_SOURCES(${TEST_DIR}/test.proto t/test.pb-c.c t/test.pb-c.h)
+@@ -126,17 +128,17 @@ GENERATE_TEST_SOURCES(${TEST_DIR}/test-proto3.proto t/test-proto3.pb-c.c t/test-
+ ADD_EXECUTABLE(test-generated-code3 ${TEST_DIR}/generated-code/test-generated-code.c t/test-proto3.pb-c.c t/test-proto3.pb-c.h)
+ TARGET_COMPILE_DEFINITIONS(test-generated-code3 PUBLIC -DPROTO3)
+ TARGET_LINK_LIBRARIES(test-generated-code3 protobuf-c)
+-
+ ENDIF()
+
+-INSTALL(TARGETS protoc-gen-c protobuf-c RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+-INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include/protobuf-c)
+-INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include)
++IF (WITH_TOOLS)
++INSTALL(TARGETS protoc-gen-c RUNTIME DESTINATION tools LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
++ENDIF()
+
+ IF(CMAKE_HOST_UNIX)
+ INSTALL(CODE "EXECUTE_PROCESS (COMMAND ln -sf protoc-gen-c protoc-c WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)")
+ ENDIF()
+
++IF (WITH_TEST)
+ INCLUDE(Dart)
+
+ SET(DART_TESTING_TIMEOUT 5)
+@@ -147,5 +149,10 @@ ADD_TEST(test-issue220 test-issue220)
+ ADD_TEST(test-issue251 test-issue251)
+ ADD_TEST(test-version test-version)
+
++ENDIF()
++
++INSTALL(TARGETS protobuf-c RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
++INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include/protobuf-c)
++INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include)
+
+ INCLUDE(CPack)