PROJECT(json2cpp) CMAKE_MINIMUM_REQUIRED(VERSION 3.1) INCLUDE(CheckIncludeFileCXX) SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib) SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin) SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib) SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin) SET(CMAKE_DEBUG_POSTFIX d) INCLUDE_DIRECTORIES(./ ./include/) AUX_SOURCE_DIRECTORY(. DIR_SRCS) # header SET(INCLUDE "./include/parser.h") SOURCE_GROUP(include FILES ${INCLUDE}) # src SET(SRC "./src/parser.cpp" "./src/reader.h" "./src/reader.cpp") SOURCE_GROUP("src" FILES ${SRC}) IF (MSVC) ADD_LIBRARY(${PROJECT_NAME} SHARED ${INCLUDE} ${SRC} ${DIR_SRCS}) ELSE () ADD_LIBRARY(${PROJECT_NAME} ${INCLUDE} ${SRC} ${DIR_SRCS}) ENDIF (MSVC) SET(EXEC OFF CACHE BOOL "") if (${EXEC} STREQUAL ON) SET(EXEC "./tester/main.cpp") SOURCE_GROUP(builder FILES ${EXEC}) ADD_EXECUTABLE(builder ${EXEC}) TARGET_LINK_LIBRARIES(builder ${PROJECT_NAME}) endif()