cmake_minimum_required (VERSION 2.6) project (CGenerator) cmake_policy(SET CMP0063 NEW) set(CMAKE_C_VISIBILITY_PRESET default) set(CMAKE_CXX_VISIBILITY_PRESET default) set(CMAKE_VISIBILITY_INLINES_HIDDEN OFF) set(CMAKE_BUILD_TYPE Debug) set(pkgName "openapi_petstore") find_package(CURL 7.58.0 REQUIRED) if(CURL_FOUND) include_directories(${CURL_INCLUDE_DIR}) set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} ${CURL_LIBRARIES} ) else(CURL_FOUND) message(FATAL_ERROR "Could not find the CURL library and development files.") endif() set(SRCS src/list.c src/apiKey.c src/apiClient.c external/cJSON.c model/object.c model/api_response.c model/category.c model/order.c model/pet.c model/tag.c model/user.c api/PetAPI.c api/StoreAPI.c api/UserAPI.c ) set(HDRS include/apiClient.h include/list.h include/keyValuePair.h external/cJSON.h model/object.h model/api_response.h model/category.h model/order.h model/pet.h model/tag.h model/user.h api/PetAPI.h api/StoreAPI.h api/UserAPI.h ) # Add library with project file with projectname as library name add_library(${pkgName} SHARED ${SRCS} ${HDRS}) # Link dependent libraries target_link_libraries(${pkgName} ${CURL_LIBRARIES} ) #install library to destination install(TARGETS ${pkgName} DESTINATION ${CMAKE_INSTALL_PREFIX}) # Setting file variables to null set(SRCS "") set(HDRS "") ## This section shows how to use the above compiled libary to compile the source files ## set source files #set(SRCS # unit-tests/manual-PetAPI.c # unit-tests/manual-StoreAPI.c # unit-tests/manual-UserAPI.c # unit-tests/manual-order.c # unit-tests/manual-user.c) ##set header files #set(HDRS #) ## loop over all files in SRCS variable #foreach(SOURCE_FILE ${SRCS}) # # Get only the file name from the file as add_executable doesnot support executable with slash("/") # get_filename_component(FILE_NAME_ONLY ${SOURCE_FILE} NAME_WE) # # Remove .c from the file name and set it as executable name # string( REPLACE ".c" "" EXECUTABLE_FILE ${FILE_NAME_ONLY}) # # Add executable for every source file in SRCS # add_executable(unit-${EXECUTABLE_FILE} ${SOURCE_FILE}) # # Link above created libary to executable and dependent libary curl # target_link_libraries(unit-${EXECUTABLE_FILE} ${CURL_LIBRARIES} ${pkgName} ) #endforeach(SOURCE_FILE ${SRCS})