Merge pull request #1084 from waddlesplash/stupid-externals
PolarSSL: don't install stuff.
This commit is contained in:
commit
8605a38ba4
|
@ -1,111 +1,2 @@
|
||||||
cmake_minimum_required(VERSION 2.6)
|
|
||||||
project(POLARSSL C)
|
|
||||||
|
|
||||||
string(REGEX MATCH "Clang" CMAKE_COMPILER_IS_CLANG "${CMAKE_C_COMPILER_ID}")
|
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -W -Wdeclaration-after-statement")
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-O2")
|
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-g3 -O0")
|
|
||||||
set(CMAKE_C_FLAGS_COVERAGE "-g3 -O0 --coverage")
|
|
||||||
set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-omit-frame-pointer -g3 -O1")
|
|
||||||
set(CMAKE_C_FLAGS_CHECK "${CMAKE_C_FLAGS} -Werror -O1 -Wlogical-op -Wwrite-strings")
|
|
||||||
set(CMAKE_C_FLAGS_CHECKFULL "${CMAKE_C_FLAGS_CHECK} -Wcast-qual")
|
|
||||||
endif(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_CLANG)
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -W -Wdeclaration-after-statement")
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-O2")
|
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-g3 -O0")
|
|
||||||
set(CMAKE_C_FLAGS_COVERAGE "-g3 -O0 --coverage")
|
|
||||||
set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-omit-frame-pointer -g3 -O1")
|
|
||||||
set(CMAKE_C_FLAGS_CHECK "${CMAKE_C_FLAGS} -Werror -O1 -Wpointer-arith -Wwrite-strings -Wdocumentation -Wunreachable-code")
|
|
||||||
endif(CMAKE_COMPILER_IS_CLANG)
|
|
||||||
|
|
||||||
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}
|
|
||||||
CACHE STRING "Choose the type of build: None Debug Release Coverage ASan Check CheckFull"
|
|
||||||
FORCE)
|
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Coverage")
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "--coverage")
|
|
||||||
endif(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
if(CMAKE_COMPILER_IS_CLANG)
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "--coverage")
|
|
||||||
endif(CMAKE_COMPILER_IS_CLANG)
|
|
||||||
endif(CMAKE_BUILD_TYPE STREQUAL "Coverage")
|
|
||||||
|
|
||||||
option(USE_PKCS11_HELPER_LIBRARY "Build PolarSSL with the pkcs11-helper library." OFF)
|
|
||||||
|
|
||||||
option(ENABLE_ZLIB_SUPPORT "Build PolarSSL with zlib library." OFF)
|
|
||||||
option(ENABLE_PROGRAMS "Build PolarSSL programs." OFF)
|
|
||||||
option(ENABLE_TESTING "Build PolarSSL tests." OFF)
|
|
||||||
|
|
||||||
if(ENABLE_TESTING)
|
|
||||||
enable_testing()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(LIB_INSTALL_DIR)
|
|
||||||
else()
|
|
||||||
set(LIB_INSTALL_DIR lib)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include_directories(include/)
|
include_directories(include/)
|
||||||
|
|
||||||
if(ENABLE_ZLIB_SUPPORT)
|
|
||||||
find_package(ZLIB)
|
|
||||||
|
|
||||||
if(ZLIB_FOUND)
|
|
||||||
include_directories(${ZLIB_INCLUDE_DIR})
|
|
||||||
endif(ZLIB_FOUND)
|
|
||||||
endif(ENABLE_ZLIB_SUPPORT)
|
|
||||||
|
|
||||||
add_subdirectory(library)
|
add_subdirectory(library)
|
||||||
add_subdirectory(include)
|
|
||||||
|
|
||||||
if(ENABLE_TESTING)
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
add_subdirectory(tests)
|
|
||||||
endif(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
if(CMAKE_COMPILER_IS_CLANG)
|
|
||||||
add_subdirectory(tests)
|
|
||||||
endif(CMAKE_COMPILER_IS_CLANG)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_PROGRAMS)
|
|
||||||
add_subdirectory(programs)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(apidoc
|
|
||||||
COMMAND doxygen doxygen/polarssl.doxyfile
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
|
|
||||||
if(ENABLE_TESTING)
|
|
||||||
ADD_CUSTOM_TARGET(test-ref-config
|
|
||||||
COMMAND tests/scripts/test-ref-configs.pl
|
|
||||||
)
|
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(covtest
|
|
||||||
COMMAND make test
|
|
||||||
COMMAND programs/test/selftest
|
|
||||||
COMMAND cd tests && ./compat.sh
|
|
||||||
COMMAND cd tests && ./ssl-opt.sh
|
|
||||||
)
|
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(lcov
|
|
||||||
COMMAND rm -rf Coverage
|
|
||||||
COMMAND lcov --capture --initial --directory library/CMakeFiles/polarssl.dir -o files.info
|
|
||||||
COMMAND lcov --capture --directory library/CMakeFiles/polarssl.dir -o tests.info
|
|
||||||
COMMAND lcov --add-tracefile files.info --add-tracefile tests.info -o all.info
|
|
||||||
COMMAND lcov --remove all.info -o final.info '*.h'
|
|
||||||
COMMAND gendesc tests/Descriptions.txt -o descriptions
|
|
||||||
COMMAND genhtml --title PolarSSL --description-file descriptions --keep-descriptions --legend --no-branch-coverage -o Coverage final.info
|
|
||||||
COMMAND rm -f files.info tests.info all.info final.info descriptions
|
|
||||||
)
|
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(memcheck
|
|
||||||
COMMAND ctest -O memcheck.log -D ExperimentalMemCheck
|
|
||||||
COMMAND tail -n1 memcheck.log | grep 'Memory checking results:' > /dev/null
|
|
||||||
COMMAND rm -f memcheck.log
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
|
@ -1,104 +0,0 @@
|
||||||
===================
|
|
||||||
README for PolarSSL
|
|
||||||
===================
|
|
||||||
|
|
||||||
Compiling
|
|
||||||
=========
|
|
||||||
|
|
||||||
There are currently three active build systems within the PolarSSL releases:
|
|
||||||
|
|
||||||
- Make
|
|
||||||
- CMake
|
|
||||||
- Microsoft Visual Studio (Visual Studio 6 and Visual Studio 2010)
|
|
||||||
|
|
||||||
The main system used for development is CMake. That system is always the most up-to-date. The others should reflect all changes present in the CMake build system, but some features are not ported there by default.
|
|
||||||
|
|
||||||
Make
|
|
||||||
----
|
|
||||||
|
|
||||||
We intentionally only use the absolute minimum of **Make** functionality, as we have discovered that a lot of **Make** features are not supported on all different implementations of Make on different platforms. As such, the Makefiles sometimes require some handwork or `export` statements in order to work for your platform.
|
|
||||||
|
|
||||||
In order to build the source using Make, just enter at the command line::
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
In order to run the tests, enter::
|
|
||||||
|
|
||||||
make check
|
|
||||||
|
|
||||||
Depending on your platform, you might run into some issues. Please check the Makefiles in *library/*, *programs/* and *tests/* for options to manually add or remove for specific platforms. You can also check `the PolarSSL Knowledge Base <https://polarssl.org/kb>`_ for articles on your platform or issue.
|
|
||||||
|
|
||||||
In case you find that you need to do something else as well, please let us know what, so we can add it to the KB.
|
|
||||||
|
|
||||||
CMake
|
|
||||||
-----
|
|
||||||
|
|
||||||
In order to build the source using CMake, just enter at the command line::
|
|
||||||
|
|
||||||
cmake .
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
There are 5 different active build modes specified within the CMake buildsystem:
|
|
||||||
|
|
||||||
- Release.
|
|
||||||
This generates the default code without any unnecessary information in the binary files.
|
|
||||||
- Debug.
|
|
||||||
This generates debug information and disables optimization of the code.
|
|
||||||
- Coverage.
|
|
||||||
This generates code coverage information in addition to debug information.
|
|
||||||
- ASan.
|
|
||||||
This instruments the code with AddressSanitizer to check for memory errors.
|
|
||||||
- Check.
|
|
||||||
This activates more compiler warnings and treats them as errors.
|
|
||||||
|
|
||||||
Switching build modes in CMake is simple. For debug mode, enter at the command line:
|
|
||||||
|
|
||||||
cmake -D CMAKE_BUILD_TYPE:String="Debug" .
|
|
||||||
|
|
||||||
In order to run the tests, enter::
|
|
||||||
|
|
||||||
make test
|
|
||||||
|
|
||||||
Microsoft Visual Studio
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
The build files for Microsoft Visual Studio are generated for Visual Studio 6.0 and Visual Studio 2010.
|
|
||||||
|
|
||||||
The workspace 'polarssl.dsw' contains all the basic projects needed to build the library and all the programs. The files in tests are not generated and compiled, as these need a perl environment as well.
|
|
||||||
|
|
||||||
Example programs
|
|
||||||
================
|
|
||||||
|
|
||||||
We've included example programs for a lot of different features and uses in *programs/*. Most programs only focus on a single feature or usage scenario, so keep that in mind when copying parts of the code.
|
|
||||||
|
|
||||||
Tests
|
|
||||||
=====
|
|
||||||
|
|
||||||
PolarSSL includes an elaborate test suite in *tests/* that initially requires Perl to generate the tests files (e.g. *test_suite_mpi.c*). These files are generates from a **function file** (e.g. *suites/test_suite_mpi.function*) and a **data file** (e.g. *suites/test_suite_mpi.data*). The **function file** contains the template for each test function. The **data file** contains the test cases, specified as parameters that should be pushed into a template function.
|
|
||||||
|
|
||||||
Configurations
|
|
||||||
==============
|
|
||||||
|
|
||||||
We provide some non-standard configurations focused on specific use cases in the configs/ directory. You can read more about those in configs/README.txt
|
|
||||||
|
|
||||||
Contributing
|
|
||||||
============
|
|
||||||
|
|
||||||
We graciously accept bugs and contributions from the community. There are some requirements we need to fulfil in order to be able to integrate contributions in the main code.
|
|
||||||
|
|
||||||
Simple bug fixes to existing code do not contain copyright themselves and we can integrate those without any issue. The same goes for trivial contributions.
|
|
||||||
|
|
||||||
For larger contributions, e.g. a new feature, the code possible falls under copyright law. We then need your consent to share in the ownership of the copyright. We have a form for that, which we will mail to you in case you submit a contribution or pull request that we deem this necessary for.
|
|
||||||
|
|
||||||
Process
|
|
||||||
-------
|
|
||||||
#. `Check for open issues <https://github.com/polarssl/polarssl/issues>`_ or
|
|
||||||
`start a discussion <https://polarssl.org/discussions>`_ around a feature
|
|
||||||
idea or a bug.
|
|
||||||
#. Fork the `PolarSSL repository on Github <https://github.com/polarssl/polarssl>`_
|
|
||||||
to start making your changes.
|
|
||||||
#. Write a test which shows that the bug was fixed or that the feature works
|
|
||||||
as expected.
|
|
||||||
#. Send a pull request and bug us until it gets merged and published. We will
|
|
||||||
include your name in the ChangeLog :)
|
|
|
@ -1,11 +0,0 @@
|
||||||
option(INSTALL_POLARSSL_HEADERS "Install PolarSSL headers." ON)
|
|
||||||
|
|
||||||
if(INSTALL_POLARSSL_HEADERS)
|
|
||||||
|
|
||||||
file(GLOB headers "polarssl/*.h")
|
|
||||||
|
|
||||||
install(FILES ${headers}
|
|
||||||
DESTINATION include/polarssl
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
|
|
||||||
|
|
||||||
endif(INSTALL_POLARSSL_HEADERS)
|
|
|
@ -110,10 +110,6 @@ if(USE_STATIC_POLARSSL_LIBRARY)
|
||||||
if(LINK_WITH_PTHREAD)
|
if(LINK_WITH_PTHREAD)
|
||||||
target_link_libraries(${polarssl_static_target} pthread)
|
target_link_libraries(${polarssl_static_target} pthread)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS ${polarssl_static_target}
|
|
||||||
DESTINATION ${LIB_INSTALL_DIR}
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(USE_SHARED_POLARSSL_LIBRARY)
|
if(USE_SHARED_POLARSSL_LIBRARY)
|
||||||
|
@ -129,8 +125,4 @@ if(USE_SHARED_POLARSSL_LIBRARY)
|
||||||
if(LINK_WITH_PTHREAD)
|
if(LINK_WITH_PTHREAD)
|
||||||
target_link_libraries(polarssl pthread)
|
target_link_libraries(polarssl pthread)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS polarssl
|
|
||||||
DESTINATION ${LIB_INSTALL_DIR}
|
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
||||||
endif(USE_SHARED_POLARSSL_LIBRARY)
|
endif(USE_SHARED_POLARSSL_LIBRARY)
|
||||||
|
|
Loading…
Reference in New Issue