tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

CMakeLists.txt (2248B)


      1 # Copyright (c) 2020 tevador <tevador@gmail.com>
      2 # See LICENSE for licensing information
      3 
      4 cmake_minimum_required(VERSION 2.8.8)
      5 
      6 set(EQUIX_VERSION 1)
      7 set(EQUIX_VERSION_MINOR 0)
      8 set(EQUIX_VERSION_PATCH 0)
      9 set(EQUIX_VERSION_STR "${EQUIX_VERSION}.${EQUIX_VERSION_MINOR}.${EQUIX_VERSION_PATCH}")
     10 
     11 project(equix)
     12 
     13 add_definitions(-DHASHX_SIZE=8)
     14 add_definitions(-DEQUIX_SUPPORT_HUGEPAGES)
     15 
     16 add_subdirectory("hashx")
     17 
     18 set(equix_sources
     19 src/context.c
     20 src/equix.c
     21 src/solver.c)
     22 
     23 if(NOT CMAKE_BUILD_TYPE)
     24  set(CMAKE_BUILD_TYPE Release)
     25  message(STATUS "Setting default build type: ${CMAKE_BUILD_TYPE}")
     26 endif()
     27 
     28 include_directories(
     29  include/
     30  hashx/include/
     31  hashx/src/)
     32 
     33 add_library(equix SHARED ${equix_sources})
     34 set_property(TARGET equix PROPERTY POSITION_INDEPENDENT_CODE ON)
     35 set_property(TARGET equix PROPERTY PUBLIC_HEADER include/equix.h)
     36 target_compile_definitions(equix PRIVATE HASHX_STATIC)
     37 target_compile_definitions(equix PRIVATE EQUIX_SHARED)
     38 target_link_libraries(equix
     39  PRIVATE hashx_static)
     40 set_target_properties(equix PROPERTIES VERSION ${EQUIX_VERSION_STR}
     41                                       SOVERSION ${EQUIX_VERSION})
     42 
     43 add_library(equix_static STATIC ${equix_sources})
     44 set_property(TARGET equix_static PROPERTY POSITION_INDEPENDENT_CODE ON)
     45 set_target_properties(equix_static PROPERTIES OUTPUT_NAME equix)
     46 target_compile_definitions(equix_static PRIVATE HASHX_STATIC)
     47 target_compile_definitions(equix_static PRIVATE EQUIX_STATIC)
     48 target_link_libraries(equix_static
     49  PRIVATE hashx_static)
     50 
     51 include(GNUInstallDirs)
     52 install(TARGETS equix equix_static
     53  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
     54  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     55  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
     56 
     57 add_executable(equix-tests
     58  src/tests.c)
     59 target_compile_definitions(equix-tests PRIVATE EQUIX_STATIC)
     60 target_link_libraries(equix-tests
     61  PRIVATE equix_static)
     62 
     63 if(NOT Threads_FOUND AND UNIX AND NOT APPLE)
     64  set(THREADS_PREFER_PTHREAD_FLAG ON)
     65  find_package(Threads)
     66 endif()
     67 
     68 add_executable(equix-bench
     69  src/bench.c
     70  hashx/src/hashx_thread.c
     71  hashx/src/hashx_time.c)
     72 target_compile_definitions(equix-bench PRIVATE EQUIX_STATIC)
     73 target_link_libraries(equix-bench
     74  PRIVATE equix_static
     75  PRIVATE ${CMAKE_THREAD_LIBS_INIT})