Browse Source

Fixed Broken CMake Files

Adam Kelly 5 years ago
parent
commit
4249bce7ad
5 changed files with 29 additions and 47 deletions
  1. 12 20
      CMakeLists.txt
  2. 6 10
      python/CMakeLists.txt
  3. 1 1
      python/__init__.py
  4. 4 1
      python/_tangle.pyx
  5. 6 15
      tangle/CMakeLists.txt

+ 12 - 20
CMakeLists.txt

@@ -1,43 +1,35 @@
 cmake_minimum_required(VERSION 3.9)
-
 project(tangle_project)
 
-# EDIT HERE 
 
 option(DISTRIBUTED "Use MPI" OFF)
 option(MULTITHREADED "Use OpenMP" ON)
 
-# END EDIT
 
 if (NOT DEFINED ${TANGLE_LIB_PATH})
     set(TANGLE_DIR "tangle")
     add_subdirectory(${TANGLE_DIR})
-    set(TANGLE_LIB_PATH "${CMAKE_CURRENT_BINARY_DIR}/${TANGLE_DIR}")
+    set(TANGLE_LIB_PATH "${CMAKE_SOURCE_DIR}/${TANGLE_DIR}")
     set(TANGLE_LIB_EXACT "${TANGLE_LIB_PATH}/libtangle.so")
 endif()
 
 
-# STANDALONE SIMULATOR
-
-set(USER_SOURCE "standalone/cli.c")
+set(CLI_SOURCE "standalone/cli.c")
 set(OUTPUT_EXE "tangle-cli")
 
-if(SKBUILD) # Using Python
+if(SKBUILD)
     add_subdirectory(python)
-else() # Using Command Line Tool
-    add_executable(${OUTPUT_EXE} ${USER_SOURCE})
-    target_link_libraries(${OUTPUT_EXE} libtangle)
+else()
+    add_executable(tangle_cli ${CLI_SOURCE})
+    set_target_properties(tangle_cli PROPERTIES OUTPUT_NAME ${OUTPUT_EXE})
+    target_link_libraries(tangle_cli tangle)
 
     if (DISTRIBUTED)
-    find_package(MPI REQUIRED)
-    include_directories(${MPI_INCLUDE_PATH})
-
-    target_link_libraries(${OUTPUT_EXE} ${MPI_C_LIBRARIES})
-    add_compile_definitions(_DISTRIBUTED)
+        find_package(MPI REQUIRED)
+        include_directories(${MPI_INCLUDE_PATH})
+        target_link_libraries(tangle_cli ${MPI_C_LIBRARIES})
     elseif (MULTITHREADED)
-    find_package(OpenMP REQUIRED)
-
-    target_link_libraries(${OUTPUT_EXE} OpenMP::OpenMP_C)
-    add_compile_definitions(_MULTITHREADED)
+        find_package(OpenMP REQUIRED)
+        target_link_libraries(tangle_cli OpenMP::OpenMP_C)
     endif()
 endif()

+ 6 - 10
python/CMakeLists.txt

@@ -1,15 +1,11 @@
 find_package(PythonExtensions REQUIRED)
 find_package(Cython REQUIRED)
 
-set(TANGLE_SRC_DIR "${PROJECT_SOURCE_DIR}/tangle/include")
+add_cython_target(pytangle pytangle.pyx C)
+add_library(pytangle MODULE ${pytangle})
 
-add_cython_target(_tangle.pyx C)
-add_library(_tangle MODULE ${_tangle})
-target_link_libraries(_tangle libtangle)
-# target_include_directories(_tangle PRIVATE ${TANGLE_SRC_DIR})
-python_extension_module(_tangle)
+target_link_libraries(pytangle tangle)
+target_include_directories(pytangle PUBLIC "${CMAKE_SOURCE_DIR}/tangle/include")
 
-message("ECO FROM MESSAAGE")
-
-
-install(TARGETS _tangle LIBRARY DESTINATION tangle)
+python_extension_module(pytangle)
+install(TARGETS pytangle LIBRARY DESTINATION python)

+ 1 - 1
python/__init__.py

@@ -1 +1 @@
-from ._tangle import say_hi
+from .pytangle import say_hi

+ 4 - 1
python/_tangle.pyx

@@ -1,5 +1,8 @@
 # cdef extern from "tangle.h":
 #     cdef void count_to(int i)
 
+cdef extern from "tangle.h":
+    void count_to(int i)
+
 def say_hi():
-    return print('hiaii')
+    return count_to(5)

+ 6 - 15
tangle/CMakeLists.txt

@@ -1,30 +1,21 @@
-# option(DISTRIBUTED "Use MPI" OFF)
-# option(MULTITHREADED "Use OpenMP" OFF)
-
 if (DISTRIBUTED)
     find_package(MPI REQUIRED)
-    include_directories(${MPI_INCLUDE_PATH})
 elseif (MULTITHREADED)
     find_package(OpenMP REQUIRED)
 endif()
 
 
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
-
-
 add_subdirectory(src)
 message("Tangle Source: ${TANGLE_SRC}")
-add_library(libtangle SHARED ${TANGLE_SRC})
 
-# Header files & linking
-target_include_directories(libtangle PRIVATE src PUBLIC include)
+
+add_library(tangle STATIC ${TANGLE_SRC})
+target_include_directories(tangle PRIVATE src PUBLIC include)
 
 
 if (DISTRIBUTED)
-    target_link_libraries(libtangle ${MPI_C_LIBRARIES})
-    add_compile_definitions(_DISTRIBUTED)
+    include_directories(${MPI_INCLUDE_PATH})
+    target_link_libraries(tangle ${MPI_C_LIBRARIES})
 elseif (MULTITHREADED)
-    target_link_libraries(libtangle PUBLIC OpenMP::OpenMP_C)
-    add_compile_definitions(_MULTITHREADED)
-
+    target_link_libraries(tangle PUBLIC OpenMP::OpenMP_C)
 endif()