-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
970 additions
and
1,476 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,3 +17,6 @@ tests/benchlib.o | |
tests/SIZES.* | ||
tests/*.log | ||
/.project | ||
build | ||
PTHREADS-BUILT | ||
.vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
language: shell | ||
|
||
os: windows | ||
|
||
env: | ||
- BUILD_TYPE=Debug VS2017=amd64 TESTING=OFF | ||
- BUILD_TYPE=Release VS2017=amd64 TESTING=OFF | ||
- BUILD_TYPE=MinSizeRel VS2017=amd64 TESTING=OFF | ||
- BUILD_TYPE=MinSizeRel VS2017=amd64 TESTING=OFF | ||
|
||
- BUILD_TYPE=Debug VS2017=amd64_x86 TESTING=OFF | ||
- BUILD_TYPE=Release VS2017=amd64_x86 TESTING=OFF | ||
- BUILD_TYPE=MinSizeRel VS2017=amd64_x86 TESTING=OFF | ||
- BUILD_TYPE=MinSizeRel VS2017=amd64_x86 TESTING=OFF | ||
|
||
#- BUILD_TYPE=Debug VS2017=amd64_arm TESTING=OFF | ||
#- BUILD_TYPE=Release VS2017=amd64_arm TESTING=OFF | ||
#- BUILD_TYPE=MinSizeRel VS2017=amd64_arm TESTING=OFF | ||
#- BUILD_TYPE=MinSizeRel VS2017=amd64_arm TESTING=OFF | ||
|
||
#- BUILD_TYPE=Debug VS2017=amd64_arm64 TESTING=OFF | ||
#- BUILD_TYPE=Release VS2017=amd64_arm64 TESTING=OFF | ||
#- BUILD_TYPE=MinSizeRel VS2017=amd64_arm64 TESTING=OFF | ||
#- BUILD_TYPE=MinSizeRel VS2017=amd64_arm64 TESTING=OFF | ||
|
||
#install: | ||
#- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" | ||
#- mkdir ${DEPS_DIR} && cd ${DEPS_DIR} && pwd | ||
#- travis_retry wget --no-check-certificate https://cmake.org/files/v3.11/cmake-3.11.0-win64-x64.zip | ||
#- echo "615dfb0813443c1ff56ae0e9d6dbfc61 *cmake-3.11.0-win64-x64.zip" > cmake_md5.txt | ||
#- md5sum -c cmake_md5.txt | ||
#- 7z x -y cmake-3.11.0-win64-x64.zip | ||
#- PATH=${DEPS_DIR}/cmake-3.11.0-win64-x64:${DEPS_DIR}/cmake-3.11.0-win64-x64/bin:$PATH | ||
|
||
before_script: | ||
|
||
# document the version | ||
#- cmake --version | ||
#- cmake --help | ||
|
||
# set enviromental variables | ||
- ls "/c/Progra~2/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build/" | ||
#vcvars32.bat | ||
#vcvars64.bat | ||
#vcvarsall.bat | ||
#vcvarsamd64_arm.bat | ||
#vcvarsamd64_arm64.bat | ||
#vcvarsamd64_x86.bat | ||
#vcvarsx86_amd64.bat | ||
#vcvarsx86_arm.bat | ||
#vcvarsx86_arm64.bat | ||
#- printenv | ||
|
||
#- msvcenv="__msvc.bat" | ||
#- echo "@echo off" > "$msvcenv" | ||
#- echo "call /c/Progra~2/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Auxiliary/Build/vcvarsall.bat ${VS2017}" >> "$msvcenv" | ||
#- echo "set" >> "$msvcenv" | ||
#- cmd "/K $msvcenv" | ||
# > "$msenv.tmp" | ||
|
||
#- cat "$msvcenv" | ||
#- rm -f "$msvcenv" | ||
|
||
- printenv | ||
|
||
#- cat "$msenv.tmp" | ||
|
||
#- grep -e '^PATH=' "$msenv.tmp" | \ | ||
#sed \ | ||
#-e 's/\(.*\)=\(.*\)/export \1="\2:$PATH"/g' \ | ||
#-e 's/\([a-zA-Z]\):[\\\/]/\/\1\//g' \ | ||
#-e 's/\\/\//g' -e 's/;\//:\//g' | ||
# > "$msenv" | ||
#- grep -e '^(INCLUDE|LIB|LIBPATH)=' "$msenv.tmp" | sed -e 's/\(.*\)=\(.*\)/export \1="\2"/g' >> "$msenv" | ||
#- rm "$msenv.tmp" | ||
#- cat "$msenv" | ||
#- source "$msenv" | ||
|
||
#- printenv | ||
|
||
- call "c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars32.bat" ${VS2017} | ||
#- cmd "/K C:\\Progra~2\\Microsoft\ Visual\ Studio\\2017\\BuildTools\\VC\\Auxiliary\\Build\\vcvarsall.bat ${VS2017}" | ||
#- /c/Progra~2/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Auxiliary/Build/vcvarsall.bat ${VS2017} > "$msenv.tmp" | ||
#- cat "$msenv.tmp" | ||
#- printenv | ||
|
||
# Visual Studio 2015 | ||
#- ls "/c/Progra~2/Microsoft Visual Studio 14.0/VC/" | ||
#- /c/Progra~2/Microsoft\ Visual\ Studio\ 14.0/VC/vcvarsall.bat amd64 | ||
|
||
# generate the build files | ||
- cd ${TRAVIS_BUILD_DIR} && mkdir build && cd build | ||
- cmake -G"NMake Makefiles" -DCMAKE_VERBOSE_MAKEFILE=FALSE -DCMAKE_BUILD_TYPE=${BUILD_TYPE} | ||
#-DBUILD_NUMBER=${TRAVIS_BUILD_NUMBER} | ||
#-DDIST_ROOT="${TRAVIS_BUILD_DIR}/build/dist" | ||
#-DENABLE_TESTS=${TESTING} | ||
#.. | ||
script: | ||
- cmake --build . --config ${BUILD_TYPE} --target install | ||
|
||
addons: | ||
coverity_scan: | ||
project: | ||
name: “jwinarske/pthreads4w" | ||
notification_email: [email protected] | ||
build_command_prepend: "mkdir build && cd build && cmake -DCMAKE_VERBOSE_MAKEFILE=TRUE -DDCMAKE_INSTALL_PREFIX=`pwd`/dist .." | ||
build_command: "cmake --build . --target install" | ||
branch_pattern: coverity_scan |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
cmake_minimum_required(VERSION 3.11) | ||
|
||
if(NOT CMAKE_BUILD_TYPE) | ||
set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE) | ||
message(STATUS "No build type specified, defaulting to MinSizeRel.") | ||
endif() | ||
|
||
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/cmake") | ||
|
||
include (get_version) | ||
|
||
message(STATUS "Generator ......... ${CMAKE_GENERATOR}") | ||
message(STATUS "Build Type ........ ${CMAKE_BUILD_TYPE}") | ||
message(STATUS "Version ........... ${PTHREADS4W_VERSION}") | ||
|
||
project(pthreads4w VERSION ${PTHREADS4W_VERSION} LANGUAGES C) | ||
|
||
set(PTW32_VER ${PROJECT_VERSION_MAJOR}${EXTRAVERSION}) | ||
set(CMAKE_DEBUG_POSTFIX d) | ||
|
||
# Uncomment this if config.h defines RETAIN_WSALASTERROR | ||
#set(XLIBS wsock32.lib) | ||
|
||
|
||
include_directories(.) | ||
|
||
################################# | ||
# Target Arch # | ||
################################# | ||
include (target_arch) | ||
|
||
get_target_arch(TARGET_ARCH) | ||
|
||
if(${TARGET_ARCH} STREQUAL "ARM") | ||
add_definitions(-D__PTW32_ARCHARM -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1) | ||
elseif(${TARGET_ARCH} STREQUAL "ARM64") | ||
add_definitions(-D__PTW32_ARCHARM64 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1) | ||
elseif(${TARGET_ARCH} STREQUAL "x86_64") | ||
add_definitions(-D__PTW32_ARCHAMD64) | ||
elseif(${TARGET_ARCH} STREQUAL "x86") | ||
add_definitions(-D__PTW32_ARCHX86) | ||
elseif(${TARGET_ARCH} STREQUAL "x64") | ||
add_definitions(-D__PTW32_ARCHX64) | ||
else() | ||
MESSAGE(ERROR "\"${TARGET_ARCH}\" not supported in version.rc") | ||
endif() | ||
message(STATUS "Target ............ ${TARGET_ARCH}") | ||
|
||
if(MSVC) | ||
message(STATUS "MSVC Version ...... ${MSVC_VERSION}") | ||
endif() | ||
|
||
################################# | ||
# Install Path # | ||
################################# | ||
if(DIST_ROOT) | ||
set(CMAKE_INSTALL_PREFIX "${DIST_ROOT}") | ||
else() | ||
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/PTHREADS-BUILT") | ||
endif() | ||
message(STATUS "Install Path ${CMAKE_INSTALL_PREFIX}") | ||
|
||
|
||
set(DLLDEST ${CMAKE_INSTALL_PREFIX}/${TARGET_ARCH}/${CMAKE_BUILD_TYPE}/bin) | ||
set(LIBDEST ${CMAKE_INSTALL_PREFIX}/${TARGET_ARCH}/${CMAKE_BUILD_TYPE}/lib) | ||
set(HDRDEST ${CMAKE_INSTALL_PREFIX}/${TARGET_ARCH}/${CMAKE_BUILD_TYPE}/include) | ||
set(TESTDEST ${CMAKE_INSTALL_PREFIX}/${TARGET_ARCH}/${CMAKE_BUILD_TYPE}/test) | ||
|
||
################################# | ||
# Defs # | ||
################################# | ||
add_definitions(-D__PTW32_BUILD_INLINED) | ||
|
||
if(MSVC) | ||
|
||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /errorReport:none /nologo ") | ||
|
||
# C++ Exceptions | ||
# (Note: If you are using Microsoft VC++6.0, the library needs to be built | ||
# with /EHa instead of /EHs or else cancellation won't work properly.) | ||
if(MSVC_VERSION EQUAL 1200) | ||
set(VCEFLAGS "/EHa /TP ") | ||
else() | ||
set(VCEFLAGS "/EHs /TP ") | ||
endif() | ||
|
||
add_definitions(-DHAVE_CONFIG_H -D__PTW32_RC_MSC) | ||
|
||
endif() | ||
|
||
# Update filename with proper version info | ||
configure_file(${CMAKE_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_BINARY_DIR}/version.rc @ONLY) | ||
|
||
################################# | ||
# Libraries # | ||
################################# | ||
set(targ_suffix "") | ||
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") | ||
set(targ_suffix ${CMAKE_DEBUG_POSTFIX}) | ||
endif() | ||
|
||
macro(shared_lib type def) | ||
set(targ pthread${type}${PTW32_VER}) | ||
add_library(${targ} SHARED pthread.c ${CMAKE_BINARY_DIR}/version.rc) | ||
message(STATUS ${targ}) | ||
target_compile_definitions(${targ} PUBLIC "-D${def}") | ||
if(${type} STREQUAL "VCE") | ||
set_target_properties(${targ} PROPERTIES COMPILE_FLAGS ${VCEFLAGS}) | ||
endif() | ||
if(${CMAKE_GENERATOR} MATCHES "Visual Studio") | ||
install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${targ}${targ_suffix}.dll DESTINATION ${DLLDEST}) | ||
install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${targ}${targ_suffix}.lib DESTINATION ${LIBDEST}) | ||
else() | ||
install(FILES ${CMAKE_BINARY_DIR}/${targ}${targ_suffix}.dll DESTINATION ${DLLDEST}) | ||
install(FILES ${CMAKE_BINARY_DIR}/${targ}${targ_suffix}.lib DESTINATION ${LIBDEST}) | ||
endif() | ||
endmacro() | ||
|
||
macro(static_lib type def) | ||
set(targ libpthread${type}${PTW32_VER}) | ||
add_library(${targ} STATIC pthread.c) | ||
message(STATUS ${targ}) | ||
target_compile_definitions(${targ} PUBLIC "-D${def}" -D__PTW32_STATIC_LIB) | ||
if(${type} STREQUAL "VCE") | ||
set_target_properties(${targ} PROPERTIES COMPILE_FLAGS ${VCEFLAGS}) | ||
endif() | ||
if(${CMAKE_GENERATOR} MATCHES "Visual Studio") | ||
install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${targ}${targ_suffix}.lib DESTINATION ${LIBDEST}) | ||
else() | ||
install(FILES ${CMAKE_BINARY_DIR}/${targ}${targ_suffix}.lib DESTINATION ${LIBDEST}) | ||
endif() | ||
endmacro() | ||
|
||
shared_lib ( VCE __PTW32_CLEANUP_CXX ) | ||
shared_lib ( VSE __PTW32_CLEANUP_SEH ) | ||
shared_lib ( VC __PTW32_CLEANUP_C ) | ||
|
||
static_lib ( VCE __PTW32_CLEANUP_CXX ) | ||
static_lib ( VSE __PTW32_CLEANUP_SEH ) | ||
static_lib ( VC __PTW32_CLEANUP_C ) | ||
|
||
################################# | ||
# Install # | ||
################################# | ||
install(FILES _ptw32.h pthread.h sched.h semaphore.h DESTINATION ${HDRDEST}) | ||
|
||
################################# | ||
# Test # | ||
################################# | ||
option(ENABLE_TESTS "Enable Test code build" FALSE) | ||
|
||
#TODO determine if cross compile... | ||
if(ENABLE_TESTS) | ||
add_subdirectory(tests) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.