diff --git a/.gitignore b/.gitignore index 8a9d35c..4dcec02 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ *.user +CMakeFiles +*.cmake +yacos diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d4f7cc..a731d45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,27 @@ cmake_minimum_required(VERSION 2.8) project(yacos) -add_executable(${PROJECT_NAME} "main.c") +#set(CMAKE_BUILD_TYPE Release) +set(CMAKE_C_FLAGS "-Wall") + +find_package(PkgConfig REQUIRED) +pkg_check_modules(GLIB2 REQUIRED glib-2.0) +pkg_check_modules(GOBJECT2 REQUIRED gobject-2.0) +pkg_check_modules(GTK3 REQUIRED gtk+-3.0) + +INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS} ${GOBJECT2_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS}) +LINK_DIRECTORIES (${GLIB2_LIBRARY_DIRS} ${GOBJECT2_LIBRARY_DIRS} ${GTK3_LIBRARY_DIRS}) +add_definitions(${GLIB2_CFLAGS_OTHER} ${GOBJECT2_CFLAGS_OTHER} ${GTK3_CFLAGS_OTHER}) + +add_custom_target(glib-resources DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources.c) +add_custom_command(DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/glade/*.glade "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.gresource.xml" + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources.c + COMMAND glib-compile-resources --target="${CMAKE_CURRENT_BINARY_DIR}/resources.c" --sourcedir="${CMAKE_CURRENT_SOURCE_DIR}" --generate-source "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.gresource.xml") + +aux_source_directory(./src SRC_LIST) +add_executable(${PROJECT_NAME} ${SRC_LIST} "${CMAKE_CURRENT_BINARY_DIR}/resources.c") +add_dependencies(${PROJECT_NAME} glib-resources) +SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/resources.c PROPERTIES GENERATED 1) +target_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES}) + +install (TARGETS ${PROJECT_NAME} DESTINATION bin) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..de38792 --- /dev/null +++ b/Makefile @@ -0,0 +1,228 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.14 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/markus/projects/c/yacos + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/markus/projects/c/yacos + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/markus/projects/c/yacos/CMakeFiles /home/markus/projects/c/yacos/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/markus/projects/c/yacos/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named yacos + +# Build rule for target. +yacos: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 yacos +.PHONY : yacos + +# fast build rule for target. +yacos/fast: + $(MAKE) -f CMakeFiles/yacos.dir/build.make CMakeFiles/yacos.dir/build +.PHONY : yacos/fast + +src/main.o: src/main.c.o + +.PHONY : src/main.o + +# target to build an object file +src/main.c.o: + $(MAKE) -f CMakeFiles/yacos.dir/build.make CMakeFiles/yacos.dir/src/main.c.o +.PHONY : src/main.c.o + +src/main.i: src/main.c.i + +.PHONY : src/main.i + +# target to preprocess a source file +src/main.c.i: + $(MAKE) -f CMakeFiles/yacos.dir/build.make CMakeFiles/yacos.dir/src/main.c.i +.PHONY : src/main.c.i + +src/main.s: src/main.c.s + +.PHONY : src/main.s + +# target to generate assembly for a file +src/main.c.s: + $(MAKE) -f CMakeFiles/yacos.dir/build.make CMakeFiles/yacos.dir/src/main.c.s +.PHONY : src/main.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... install/local" + @echo "... edit_cache" + @echo "... yacos" + @echo "... rebuild_cache" + @echo "... list_install_components" + @echo "... install" + @echo "... src/main.o" + @echo "... src/main.i" + @echo "... src/main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/glade/mainWindow.glade b/glade/mainWindow.glade new file mode 100644 index 0000000..a41da37 --- /dev/null +++ b/glade/mainWindow.glade @@ -0,0 +1,15 @@ + + + + + + False + False + + + + + + + + diff --git a/main.c b/src/main.c similarity index 100% rename from main.c rename to src/main.c diff --git a/yacos.gresource.xml b/yacos.gresource.xml new file mode 100644 index 0000000..7c4516f --- /dev/null +++ b/yacos.gresource.xml @@ -0,0 +1,6 @@ + + + + glade/mainWindow.glade + +