cmake_minimum_required(VERSION 3.0.2-1) project(simple-netaid) message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") set(CMAKE_C_COMPILER_INIT gcc) set_source_files_properties(backend_src/*.c PROPERTIES LANGUAGE C ) if(GUI_DIR) set(CMAKE_CXX_COMPILER_INIT g++) set_source_files_properties(gtk/*.cpp PROPERTIES LANGUAGE CXX_STANDARD11 ) endif() set(CMAKE_INSTALL_PREFIX /usr) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/ModulesCMake") set(CMAKE_INSTALL_PREFIX /usr) include(GNUInstallDirs) # set arch-specific include dir set(CMAKE_INSTALL_INCLUDEDIR "include/${CMAKE_LIBRARY_ARCHITECTURE}") set(CMAKE_INSTALL_LIBDIR "usr/lib/${DEB_HOST_MULTIARCH}") # The -pthread flag is more portable than -lpthread set(CMAKE_C_FLAGS "-Wall -g -lm -liw -pthread -I/include" ) set(CMAKE_C_FLAGS_DEBUG "-Wall -g -lm -liw -pthread -I/include" ) if(GUI_DIR) set(CMAKE_CXX_FLAGS "-Wall -g -o -lm -liw -Wc++0x-compat -std=gnu++11 -pthread -I/backend_src -I/include" ) set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -o -lm -liw -Wc++0x-compat -std=gnu++11 -pthread -I/backend_src -I/include" ) endif() find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB REQUIRED glib-2.0) if(GUI_DIR) pkg_check_modules(GTKMM REQUIRED gtkmm-2.4) endif() # Setup CMake to use GTK+ and Gtkmm, tell the compiler where to look for headers # and to the linker where to look for libraries list(APPEND DIR_LIST backend_src ${CMAKE_SOURCE_DIR} ${GLIB_INCLUDE_DIRS}) list(APPEND LINK_LIST ${GLIB_LIBRARY_DIRS}) list(APPEND CFLAG_LIST ${GLIB_CFLAGS_OTHER}) if(GUI_DIR) list(APPEND DIR_LIST include ${GTKMM_INCLUDE_DIRS}) list(APPEND LINK_LIST ${GTKMM_LIBRARY_DIRS}) list(APPEND CFLAG_LIST ${GTKMM_CFLAGS_OTHER}) endif() include_directories(${DIR_LIST}) add_subdirectory(backend_src) if(GUI_DIR) add_subdirectory (gtk) endif() if(LANGS_DIR) set (ALL_LINGUAS es) set (GETTEXT_PACKAGE simple-netaid) add_subdirectory (po) endif() link_directories(${LINK_LIST}) # Add other flags to the compiler add_definitions(${CFLAG_LIST}) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/../) set(CMAKE_BUILD_TYPE debug) add_executable("${PROJECT_NAME}-server" backend_src/server.c) add_executable("${PROJECT_NAME}-client" backend_src/client.c) #Set up library with all found packages for the project_name target_link_libraries("${PROJECT_NAME}-server" netaid ${GLIB_LIBRARIES}) if(GUI_DIR) add_executable(spinner gtk/spinner.cpp) add_executable("${PROJECT_NAME}-gtk" gtk/main.cpp) target_link_libraries(spinner snetaid ${GTKMM_LIBRARIES}) target_link_libraries("${PROJECT_NAME}-gtk" snetaid netaid ${GTKMM_LIBRARIES}) endif()