From 8e2799ced5e6ba16cd8d1e883234ed99036d9ab5 Mon Sep 17 00:00:00 2001 From: Juan Antonio Barragan Date: Tue, 1 Mar 2022 17:54:31 -0500 Subject: [PATCH] CMakelist files tested in Ubuntu 20.0.4 --- .gitignore | 3 ++- CMakeLists.txt | 48 ++++++++++++++++++++++++++++++++++++ EDTFromGrid/CMakeLists.txt | 24 ++++++++++++++++++ EDTFromMesh/CMakeLists.txt | 10 ++++++++ MarchingCubes/CMakeLists.txt | 10 ++++++++ PNG/CMakeLists.txt | 20 +++++++++++++++ 6 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 CMakeLists.txt create mode 100644 EDTFromGrid/CMakeLists.txt create mode 100644 EDTFromMesh/CMakeLists.txt create mode 100644 MarchingCubes/CMakeLists.txt create mode 100644 PNG/CMakeLists.txt diff --git a/.gitignore b/.gitignore index 93eb461..f7b1235 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ Bin/* lpng1637 PNG/V1 PNG/V2 -*.user \ No newline at end of file +*.user +cmake-build diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7e5a1ac --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +project(EDT) +cmake_minimum_required(VERSION 3.0) + +# C++ code requires CXX 14 +set (CMAKE_CXX_STANDARD 14) +set (CMAKE_CXX_STANDARD_REQUIRED ON) +set (CMAKE_CXX_EXTENSIONS OFF) + +# code used everywhere +find_package(OpenMP) + + +# to have more warnings (mostly for GCC and CLANG) +if (NOT MSVC) + include (CheckCXXCompilerFlag) + set (WARNINGS "no-deprecated" "no-unused-result" "no-format") + foreach(warning ${WARNINGS}) + check_cxx_compiler_flag("-W${warning}" CXX_SUPPORTS_WARNING) + if(CXX_SUPPORTS_WARNING) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -W${warning}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W${warning}") + endif() + endforeach() + + set(CFLAGS_RELEASE "unroll-loops" "fast-math") + foreach(cflag ${CFLAGS_RELEASE}) + check_cxx_compiler_flag("-f${cflag}" CXX_SUPPORTS_FLAG) + if(CXX_SUPPORTS_FLAG) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -f${cflag}") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -f${cflag}") + endif() + endforeach() + +endif(NOT MSVC) + +# to include header files related to this directory +include_directories(${EDT_SOURCE_DIR}) + +# make sure all libraries go in the same place +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${EDT_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${EDT_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EDT_BINARY_DIR}/bin) + +# now compile libraries and executables +add_subdirectory(PNG) +add_subdirectory(EDTFromMesh) +add_subdirectory(EDTFromGrid) +add_subdirectory(MarchingCubes) diff --git a/EDTFromGrid/CMakeLists.txt b/EDTFromGrid/CMakeLists.txt new file mode 100644 index 0000000..3aa0739 --- /dev/null +++ b/EDTFromGrid/CMakeLists.txt @@ -0,0 +1,24 @@ +project(EDTFromGrid) +cmake_minimum_required(VERSION 3.9) + +find_package(JPEG REQUIRED) +find_package(ZLIB REQUIRED) + +include_directories( + ${JPEG_INCLUDE_DIR} + ${ZLIB_INCLUDE_DIRS}) + +add_executable( + EDTFromGrid + EDTFromGrid.cpp) + +target_link_libraries( + EDTFromGrid + PUBLIC + ${JPEG_LIBRARIES} + mypng + ${ZLIB_LIBRARIES}) + +if(OpenMP_CXX_FOUND) + target_link_libraries(EDTFromGrid PUBLIC OpenMP::OpenMP_CXX) +endif() diff --git a/EDTFromMesh/CMakeLists.txt b/EDTFromMesh/CMakeLists.txt new file mode 100644 index 0000000..68f5e37 --- /dev/null +++ b/EDTFromMesh/CMakeLists.txt @@ -0,0 +1,10 @@ +project(EDTFromMesh) +cmake_minimum_required(VERSION 3.9) + +add_executable( + EDTFromMesh + EDTFromMesh.cpp) + +if(OpenMP_CXX_FOUND) + target_link_libraries(EDTFromMesh PUBLIC OpenMP::OpenMP_CXX) +endif() diff --git a/MarchingCubes/CMakeLists.txt b/MarchingCubes/CMakeLists.txt new file mode 100644 index 0000000..5203eea --- /dev/null +++ b/MarchingCubes/CMakeLists.txt @@ -0,0 +1,10 @@ +project(MarchingCubes) +cmake_minimum_required(VERSION 3.9) + +add_executable( + MarchingCubes + MarchingCubes.cpp) + +if(OpenMP_CXX_FOUND) + target_link_libraries(MarchingCubes PUBLIC OpenMP::OpenMP_CXX) +endif() diff --git a/PNG/CMakeLists.txt b/PNG/CMakeLists.txt new file mode 100644 index 0000000..fbf7e7b --- /dev/null +++ b/PNG/CMakeLists.txt @@ -0,0 +1,20 @@ +project(PNG) +cmake_minimum_required(VERSION 3.9) + +add_library( + mypng + png.c + pngerror.c + pngget.c + pngmem.c + pngpread.c + pngread.c + pngrio.c + pngrtran.c + pngrutil.c + pngset.c + pngwio.c + pngwrite.c + pngwtran.c + pngwutil.c + pngtrans.c)