diff options
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/curve25519/CMakeLists.txt | 10 | ||||
-rw-r--r-- | src/ed448goldilocks/CMakeLists.txt | 10 | ||||
-rw-r--r-- | src/generator/curve25519/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/generator/ed448goldilocks/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/generator/template.py | 20 | ||||
-rw-r--r-- | src/p25519/CMakeLists.txt | 13 | ||||
-rw-r--r-- | src/p448/CMakeLists.txt | 13 |
9 files changed, 38 insertions, 61 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index cb1bbba..8f5ceac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,13 +34,6 @@ include(GNUInstallDirs) include(CheckSymbolExists) include(CMakePushCheckState) -include_directories( - ${GSOURCE_PATH}/include/ - src/include/ - src/ - ${CMAKE_CURRENT_BINARY_DIR} -) - set(STRICT_OPTIONS_CPP ) set(STRICT_OPTIONS_C ) set(STRICT_OPTIONS_CXX ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0294fc6..0f332cb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,10 +61,6 @@ else() # nothing picked yet, stick to the message("Target architecture is general purpose 32bits") endif() -include_directories( - ${PROJECT_SOURCE_DIR}/src/include/${TARGET_ARCH_DIR} -) - set(DECAF_SOURCE_FILES_CXX ) @@ -79,7 +75,10 @@ if(ENABLE_STATIC) add_library(decaf-static STATIC ${DECAF_HEADER_FILES} ${DECAF_SOURCE_FILES_C} ${DECAF_SOURCE_FILES_CXX} $<TARGET_OBJECTS:p25519> $<TARGET_OBJECTS:p448> $<TARGET_OBJECTS:CURVE25519> $<TARGET_OBJECTS:CURVE448>) add_dependencies(decaf-static generatedCode) set_target_properties(decaf-static PROPERTIES OUTPUT_NAME decaf) - target_include_directories(decaf-static PUBLIC) + target_include_directories(decaf-static + PUBLIC $<BUILD_INTERFACE:${GSOURCE_PATH}/include> + PRIVATE ${PROJECT_SOURCE_DIR}/src/include + ) target_link_libraries(decaf-static INTERFACE) endif() if(ENABLE_SHARED) @@ -89,7 +88,10 @@ if(ENABLE_SHARED) set_target_properties(decaf PROPERTIES LINK_FLAGS "-stdlib=libc++") endif() set_target_properties(decaf PROPERTIES VERSION ${DECAF_SO_VERSION}) - target_include_directories(decaf PUBLIC) + target_include_directories(decaf + PUBLIC $<BUILD_INTERFACE:${GSOURCE_PATH}/include> + PRIVATE ${PROJECT_SOURCE_DIR}/src/include + ) target_link_libraries(decaf PRIVATE) if(MSVC) if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") diff --git a/src/curve25519/CMakeLists.txt b/src/curve25519/CMakeLists.txt index 766736f..9374405 100644 --- a/src/curve25519/CMakeLists.txt +++ b/src/curve25519/CMakeLists.txt @@ -4,13 +4,6 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ - -include_directories( - ${PROJECT_SOURCE_DIR}/src/p25519 - ${GSOURCE_PATH}/c/p25519 - ${PROJECT_SOURCE_DIR}/src/p25519/${TARGET_ARCH_DIR_P25519} -) - set(CURVE25519_SOURCE_FILES_C ${GSOURCE_PATH}/c/curve25519/decaf.c ${GSOURCE_PATH}/c/curve25519/elligator.c @@ -26,5 +19,6 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/curve25519/eddsa.c PROPERTIES GENE SET_SOURCE_FILES_PROPERTIES(${PROJECT_SOURCE_DIR}/src/curve25519/decaf_tables.c PROPERTIES GENERATED 1) add_library(CURVE25519 OBJECT ${CURVE25519_SOURCE_FILES_C}) -add_dependencies(CURVE25519 generatedCode p25519) +add_dependencies(CURVE25519 generatedCode) +target_link_libraries(CURVE25519 PRIVATE p25519) set_target_properties(CURVE25519 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/ed448goldilocks/CMakeLists.txt b/src/ed448goldilocks/CMakeLists.txt index 3b93205..53ff7c3 100644 --- a/src/ed448goldilocks/CMakeLists.txt +++ b/src/ed448goldilocks/CMakeLists.txt @@ -4,13 +4,6 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ - -include_directories( - ${PROJECT_SOURCE_DIR}/src/p448 - ${GSOURCE_PATH}/c/p448 - ${PROJECT_SOURCE_DIR}/src/p448/${TARGET_ARCH_DIR_P448} -) - set(CURVE448_SOURCE_FILES_C ${GSOURCE_PATH}/c/ed448goldilocks/decaf.c ${GSOURCE_PATH}/c/ed448goldilocks/elligator.c @@ -26,5 +19,6 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/ed448goldilocks/eddsa.c PROPERTIES SET_SOURCE_FILES_PROPERTIES(${PROJECT_SOURCE_DIR}/src/ed448goldilocks/decaf_tables.c PROPERTIES GENERATED 1) add_library(CURVE448 OBJECT ${CURVE448_SOURCE_FILES_C}) -add_dependencies(CURVE448 generatedCode p448) +add_dependencies(CURVE448 generatedCode) +target_link_libraries(CURVE448 PRIVATE p448) set_target_properties(CURVE448 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/generator/curve25519/CMakeLists.txt b/src/generator/curve25519/CMakeLists.txt index 0edb165..2349b63 100644 --- a/src/generator/curve25519/CMakeLists.txt +++ b/src/generator/curve25519/CMakeLists.txt @@ -84,17 +84,13 @@ add_custom_target(generatorCurve25519 DEPENDS ${GSOURCE_PATH}/include/decaf/point_255.hxx ${GSOURCE_PATH}/include/decaf/ed255.hxx ) -include_directories( - ${PROJECT_SOURCE_DIR}/src/p25519 - ${GSOURCE_PATH}/c/p25519 - ${PROJECT_SOURCE_DIR}/src/p25519/${TARGET_ARCH_DIR_P25519} -) add_executable(decaf_gen_tables_curve25519 EXCLUDE_FROM_ALL ${GSOURCE_PATH}/c/curve25519/decaf_gen_tables.c ${GSOURCE_PATH}/c/curve25519/decaf.c ${GSOURCE_PATH}/c/curve25519/scalar.c ${PROJECT_SOURCE_DIR}/src/utils.c $<TARGET_OBJECTS:p25519>) +target_link_libraries(decaf_gen_tables_curve25519 PRIVATE p25519) add_custom_target(decaf_tables_curve25519 COMMAND decaf_gen_tables_curve25519 > ${PROJECT_SOURCE_DIR}/src/curve25519/decaf_tables.c diff --git a/src/generator/ed448goldilocks/CMakeLists.txt b/src/generator/ed448goldilocks/CMakeLists.txt index 1e31ee9..5c4b4b8 100644 --- a/src/generator/ed448goldilocks/CMakeLists.txt +++ b/src/generator/ed448goldilocks/CMakeLists.txt @@ -92,17 +92,13 @@ add_custom_target(generatorEd448goldilocks DEPENDS ${GSOURCE_PATH}/include/decaf/point_448.hxx ${GSOURCE_PATH}/include/decaf/ed448.hxx ) -include_directories( - ${PROJECT_SOURCE_DIR}/src/p448 - ${GSOURCE_PATH}/c/p448 - ${PROJECT_SOURCE_DIR}/src/p448/${TARGET_ARCH_DIR_P448} -) add_executable(decaf_gen_tables_ed448goldilocks EXCLUDE_FROM_ALL ${GSOURCE_PATH}/c/ed448goldilocks/decaf_gen_tables.c ${GSOURCE_PATH}/c/ed448goldilocks/decaf.c ${GSOURCE_PATH}/c/ed448goldilocks/scalar.c ${PROJECT_SOURCE_DIR}/src/utils.c $<TARGET_OBJECTS:p448>) +target_link_libraries(decaf_gen_tables_ed448goldilocks PRIVATE p448) add_custom_target(decaf_tables_ed448goldilocks COMMAND decaf_gen_tables_ed448goldilocks > ${PROJECT_SOURCE_DIR}/src/ed448goldilocks/decaf_tables.c diff --git a/src/generator/template.py b/src/generator/template.py index ce127a3..c40ba29 100644 --- a/src/generator/template.py +++ b/src/generator/template.py @@ -56,16 +56,16 @@ author = "Mike Hamburg" # FUTURE for name in args.files: _,_,name_suffix = name.rpartition(".") template0 = open(name,"r").read() - + data = per_map[args.per][args.item] template = template0 - + outname = args.o guard = args.guard if guard is None: guard = outname header_guard = "__" + guard.replace(".","_").replace("/","_").upper() + "__" - + # Extract doxygenation m = re.match(r"^\s*/\*\*([^*]|\*[^/])+\*/[ \t]*\n",template) if m: @@ -73,12 +73,12 @@ for name in args.files: doc = re.sub("\\s*\*/","",doc) template = template[m.end():] else: doc = "" - + ns_doc = dedent(doc).strip().rstrip() ns_doc = redoc(guard, fillin(ns_doc,data), author) ns_code = fillin(template,data) ret = ns_doc + "\n" - + if outname.endswith(".h") or outname.endswith(".hxx"): ns_code = dedent("""\n #ifndef %(header_guard)s @@ -87,11 +87,11 @@ for name in args.files: #endif /* %(header_guard)s */ """) % { "header_guard" : header_guard, "code": ns_code } ret += ns_code[1:-1] - - if not os.path.exists(os.path.dirname(outname)): + + try: os.makedirs(os.path.dirname(outname)) + except OSError as e: + if e.errno != 17: # errno.EEXIST + raise with open(outname,"w") as f: f.write(ret + "\n") - - -
\ No newline at end of file diff --git a/src/p25519/CMakeLists.txt b/src/p25519/CMakeLists.txt index c6153fc..efd12ec 100644 --- a/src/p25519/CMakeLists.txt +++ b/src/p25519/CMakeLists.txt @@ -4,12 +4,6 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ -include_directories( - ${PROJECT_SOURCE_DIR}/src/p25519 - ${GSOURCE_PATH}/c/p25519 - ${PROJECT_SOURCE_DIR}/src/p25519/${TARGET_ARCH_DIR_P25519} -) - set(P25519_HEADER_FILES ${GSOURCE_PATH}/c/p25519/f_field.h ${TARGET_ARCH_DIR_P25519}/f_impl.h @@ -25,5 +19,12 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/p25519/f_generic.c PROPERTIES GENE add_library(p25519 OBJECT ${P25519_HEADER_FILES} ${P25519_SOURCE_FILES_C}) add_dependencies(p25519 generatorP25519) +target_include_directories(p25519 + PUBLIC ${GSOURCE_PATH}/include + PUBLIC ${GSOURCE_PATH}/c/p25519 + PUBLIC ${TARGET_ARCH_DIR_P25519} + PUBLIC ${PROJECT_SOURCE_DIR}/src/include/${TARGET_ARCH_DIR} + PUBLIC ${PROJECT_SOURCE_DIR}/src/include +) set_target_properties(p25519 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/p448/CMakeLists.txt b/src/p448/CMakeLists.txt index c9eef94..2794b4b 100644 --- a/src/p448/CMakeLists.txt +++ b/src/p448/CMakeLists.txt @@ -4,12 +4,6 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ -include_directories( - ${PROJECT_SOURCE_DIR}/src/p448 - ${GSOURCE_PATH}/c/p448 - ${PROJECT_SOURCE_DIR}/src/p448/${TARGET_ARCH_DIR_P448} -) - set(P448_HEADER_FILES ${GSOURCE_PATH}/c/p448/f_field.h ${TARGET_ARCH_DIR_P448}/f_impl.h @@ -25,5 +19,12 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/p448/f_generic.c PROPERTIES GENERA add_library(p448 OBJECT ${P448_HEADER_FILES} ${P448_SOURCE_FILES_C}) add_dependencies(p448 generatorP448) +target_include_directories(p448 + PUBLIC ${GSOURCE_PATH}/include + PUBLIC ${GSOURCE_PATH}/c/p448 + PUBLIC ${TARGET_ARCH_DIR_P448} + PUBLIC ${PROJECT_SOURCE_DIR}/src/include/${TARGET_ARCH_DIR} + PUBLIC ${PROJECT_SOURCE_DIR}/src/include +) set_target_properties(p448 PROPERTIES POSITION_INDEPENDENT_CODE True) |