aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorJan200101 <sentrycraft123@gmail.com>2021-05-18 11:42:27 +0200
committerJan200101 <sentrycraft123@gmail.com>2021-05-18 11:44:22 +0200
commit8e7d62f14bd401e4cc8737c06f16e6978b0b9e57 (patch)
tree94a3352969e287e5ac6040d2d2829e9656f4d492 /src/CMakeLists.txt
parent52f8abc09b0d97608ba9d5b57ea96c48a1390384 (diff)
downloadpolecat-8e7d62f14bd401e4cc8737c06f16e6978b0b9e57.tar.gz
polecat-8e7d62f14bd401e4cc8737c06f16e6978b0b9e57.zip
improve cmake files, add simple curl mock, clean up on download error
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..16d1b5e
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,61 @@
+set(C_STANDARD 99)
+
+set(SOURCES
+ ${CMAKE_CURRENT_SOURCE_DIR}/command.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/common.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/common.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/config.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/config.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/dxvk.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/dxvk.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/lutris.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/lutris.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/main.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/main.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/net.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/net.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/tar.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/tar.h
+)
+
+
+if (NOT WIN32)
+set(SOURCES
+ ${SOURCES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/wine.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/wine.h
+)
+endif()
+
+find_package(Libcurl REQUIRED)
+find_package(JsonC REQUIRED)
+find_package(Libarchive REQUIRED)
+
+add_executable(${CMAKE_PROJECT_NAME} ${SOURCES})
+
+target_link_libraries(${CMAKE_PROJECT_NAME} LINK_PUBLIC ${JSONC_LIBRARIES})
+target_link_libraries(${CMAKE_PROJECT_NAME} LINK_PUBLIC ${LIBARCHIVE_LIBRARIES})
+target_link_libraries(${CMAKE_PROJECT_NAME} LINK_PUBLIC ${LIBCURL_LIBRARIES})
+
+target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${JSONC_INCLUDE_DIRS})
+target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${LIBARCHIVE_INCLUDE_DIRS})
+target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${LIBCURL_INCLUDE_DIRS})
+
+set(CFLAGS
+ -Wall -Wextra -pedantic
+ -Wconversion -Wshadow -Wstrict-aliasing
+ -Winit-self -Wcast-align -Wpointer-arith
+ -Wmissing-declarations -Wmissing-include-dirs
+ -Wno-unused-parameter -Wuninitialized
+ ${JSONC_CFLAGS}
+ ${LIBARCHIVE_CFLAGS}
+ ${LIBCURL_CFLAGS}
+)
+
+target_compile_options(${CMAKE_PROJECT_NAME} PUBLIC ${CFLAGS})
+
+install(TARGETS ${CMAKE_PROJECT_NAME})
+
+if(BUILD_MOCK)
+ add_subdirectory(mock)
+endif() \ No newline at end of file