aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-10-14 14:19:02 +0200
committerJ08nY2017-10-14 23:11:11 +0200
commit5fe4358eeb74cd82008c336fc4f634548e5e3393 (patch)
tree8ea32d24ac4c6a62a026de3e77aaa68690d927b8
parent4dece41c236a7e92ab04205e8b6e076a2514a528 (diff)
downloadecgen-5fe4358eeb74cd82008c336fc4f634548e5e3393.tar.gz
ecgen-5fe4358eeb74cd82008c336fc4f634548e5e3393.tar.zst
ecgen-5fe4358eeb74cd82008c336fc4f634548e5e3393.zip
-rw-r--r--CMakeLists.txt20
-rw-r--r--lib/CMakeLists.txt11
-rw-r--r--test/CMakeLists.txt9
3 files changed, 28 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6d7c624..5ebb028 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,24 +1,24 @@
cmake_minimum_required(VERSION 2.8.11)
project(ecgen C)
-set(CMAKE_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/lib)
+add_subdirectory(lib)
+
+file(GLOB SRC "src/math/*.c" "src/gen/*.c" "src/cm/*.c" "src/invalid/*.c" "src/io/*.c" "src/exhaustive/*.c" "src/misc/*.c" "src/util/*.c")
+set(ECGEN_SRC "src/ecgen.c" ${SRC})
+set(ECONVERT_SRC "src/econvert.c")
+
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -g -Wall -Werror -pedantic")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG -O3 -Wall")
include_directories(src)
include_directories(lib)
-find_library(parson parson/libparson.a)
-find_library(sha1 sha1/libsha1.a)
-
-file(GLOB SRC "src/math/*.c" "src/gen/*.c" "src/cm/*.c" "src/invalid/*.c" "src/io/*.c" "src/exhaustive/*.c" "src/misc/*.c" "src/util/*.c")
-set(ECGEN_SRC "src/ecgen.c" ${SRC})
-set(ECONVERT_SRC "src/econvert.c")
+add_subdirectory(test)
add_executable(ecgen ${ECGEN_SRC})
add_executable(econvert ${ECONVERT_SRC})
-target_link_libraries(ecgen pthread rt pari ${parson} ${sha1})
-target_link_libraries(econvert pthread rt pari ${parson} ${sha1})
+target_link_libraries(ecgen pthread rt pari parson sha1)
+target_link_libraries(econvert pthread rt pari parson sha1)
+
-add_subdirectory(test) \ No newline at end of file
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
new file mode 100644
index 0000000..c97b838
--- /dev/null
+++ b/lib/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 2.8.11)
+project(ecgen_libs C)
+
+set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -g -Wall -Werror -pedantic")
+set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG -O3 -Wall")
+
+file(GLOB PARSON_SRC "parson/*.c")
+file(GLOB SHA1_SRC "sha1/*.c")
+
+add_library(parson STATIC ${PARSON_SRC})
+add_library(sha1 STATIC ${SHA1_SRC}) \ No newline at end of file
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 066defb..fabbcc9 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,5 +1,10 @@
cmake_minimum_required(VERSION 2.8.11)
-project(test_ecgen C)
+
+# This is an issue because criterion contains a header "io/output.h" which is
+# after ecgen's "io/output.h" and so gets shadowed in the include directories
+# list which breaks all kinds of things when criterion souces #include "io/output.h".
+#
+# add_subdirectory(lib/criterion)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib/criterion/include)
@@ -10,7 +15,7 @@ file(GLOB TEST_SRC "src/math/*.c" "src/gen/*.c" "src/cm/*.c" "src/invalid/*.c" "
file(GLOB TESTING_SRC "src/test/*.c")
add_executable(test_ecgen ${TEST_SRC} ${TESTING_SRC} ${SRC})
-target_link_libraries(test_ecgen pthread rt pari ${parson} ${sha1} ${criterion})
+target_link_libraries(test_ecgen pthread rt pari parson sha1 ${criterion})
enable_testing()
add_test(NAME test_ecgen COMMAND test_ecgen) \ No newline at end of file