summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt61
1 files changed, 61 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..fa1ad6c
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,61 @@
+################################################################################
+# Cmake directives
+################################################################################
+cmake_minimum_required(VERSION 2.8)
+
+################################################################################
+# Project information
+################################################################################
+project(libuknapsack)
+
+set(PROJECT_MAJOR_VERSION 1)
+set(PROJECT_MINOR_VERSION 0)
+set(PROJECT_PATCH_VERSION 0)
+set(PROJECT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION})
+
+################################################################################
+# Dependencies
+################################################################################
+
+################################################################################
+# CMake
+################################################################################
+set(C_FLAGS_WARNING "-Wall -pedantic")
+set(C_CXX_FLAGS_DEFAULT "${C_FLAGS_WARNING} -O2")
+
+set(CMAKE_C_FLAGS "${C_CXX_FLAGS_DEFAULT} ${CMAKE_C_FLAGS}")
+set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -O0 -g -DDEBUG=1")
+set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS}")
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g -DDEBUG=1")
+
+set(CMAKE_BUILD_TYPE Release CACHE STRING "default to Release")
+
+set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/_install)
+
+################################################################################
+# Files and install
+################################################################################
+set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
+set(INCLUDE_FILES
+ ${INCLUDE_DIR}/nem_ull.h
+ ${INCLUDE_DIR}/structs.h
+ ${INCLUDE_DIR}/common.h
+)
+
+set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
+set(SRC_FILES
+ ${SRC_DIR}/nem_ull.c
+ ${SRC_DIR}/common.c
+)
+
+set(MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main)
+
+include_directories (${INCLUDE_DIR})
+
+add_library(nem_ull_lib STATIC ${SRC_FILES})
+add_executable(nem_ull ${MAIN_SRC_DIR}/nem_ull.c)
+target_link_libraries(nem_ull nem_ull_lib)
+
+install(TARGETS nem_ull DESTINATION bin)
+install(TARGETS nem_ull_lib DESTINATION lib)
+install(FILES ${INCLUDE_FILES} DESTINATION include)