diff --git a/ports/antlr4/CONTROL b/ports/antlr4/CONTROL new file mode 100644 index 0000000000..dbcf5219c7 --- /dev/null +++ b/ports/antlr4/CONTROL @@ -0,0 +1,3 @@ +Source: antlr4 +Version: 4.6 +Description: ANother Tool for Language Recognition \ No newline at end of file diff --git a/ports/antlr4/crt_mt.patch b/ports/antlr4/crt_mt.patch new file mode 100644 index 0000000000..d2e8a28dab --- /dev/null +++ b/ports/antlr4/crt_mt.patch @@ -0,0 +1,36 @@ +diff --git a/runtime/antlr4cpp-vs2015.vcxproj b/runtime/antlr4cpp-vs2015.vcxproj +index 85fa3da..540f031 100644 +--- a/runtime/antlr4cpp-vs2015.vcxproj ++++ b/runtime/antlr4cpp-vs2015.vcxproj +@@ -201,6 +201,7 @@ + 4251 + true + false ++ MultiThreadedDebug + + + Windows +@@ -239,6 +240,7 @@ + 4251 + true + false ++ MultiThreadedDebug + + + Windows +@@ -281,6 +283,7 @@ + + 4251 + true ++ MultiThreaded + + + Windows +@@ -325,6 +328,7 @@ + + 4251 + true ++ MultiThreaded + + + Windows diff --git a/ports/antlr4/portfile.cmake b/ports/antlr4/portfile.cmake new file mode 100644 index 0000000000..8b11c95b07 --- /dev/null +++ b/ports/antlr4/portfile.cmake @@ -0,0 +1,74 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/runtime) + +vcpkg_download_distfile(ARCHIVE + URLS "http://www.antlr.org/download/antlr4-cpp-runtime-4.6-source.zip" + FILENAME "antlr4-cpp-runtime-4.6-source.zip" + SHA512 e123c2227e41ce80da5a3758725a018690ed70a4e10c23da26c966259e6bdafa192f4363f5a7e1181ef9a47bf3cc50d6b0ca7b26c8dd2b19222a7edf54de8de2 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src + PATCHES ${CMAKE_CURRENT_LIST_DIR}/crt_mt.patch +) + +if (${VCPKG_LIBRARY_LINKAGE} STREQUAL static) + set(DEBUG_CONFIG "Debug Static") + set(RELEASE_CONFIG "Release Static") +else() + set(DEBUG_CONFIG "Debug DLL") + set(RELEASE_CONFIG "Release DLL") +endif() + +vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/antlr4cpp-vs2015.vcxproj + DEBUG_CONFIGURATION ${DEBUG_CONFIG} + RELEASE_CONFIGURATION ${RELEASE_CONFIG} +) + +file (MAKE_DIRECTORY + ${CURRENT_PACKAGES_DIR}/include) +FILE(COPY ${SOURCE_PATH}/src/ + DESTINATION ${CURRENT_PACKAGES_DIR}/include + FILES_MATCHING PATTERN "*.h") + +file (MAKE_DIRECTORY + ${CURRENT_PACKAGES_DIR}/lib + ${CURRENT_PACKAGES_DIR}/debug/lib) + +file(COPY ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${DEBUG_CONFIG}/antlr4-runtime.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(COPY ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${RELEASE_CONFIG}/antlr4-runtime.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + +if (${VCPKG_LIBRARY_LINKAGE} STREQUAL static) + vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include + PATCHES ${CMAKE_CURRENT_LIST_DIR}/static.patch + ) +else() + file (MAKE_DIRECTORY + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/debug/bin) + + file(COPY + ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${DEBUG_CONFIG}/antlr4-runtime.dll + ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${DEBUG_CONFIG}/antlr4-runtime.pdb + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(COPY + ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${RELEASE_CONFIG}/antlr4-runtime.dll + ${SOURCE_PATH}/bin/vs-2015/${TRIPLET_SYSTEM_ARCH}/${RELEASE_CONFIG}/antlr4-runtime.pdb + DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +endif() + + +# license not exist in antlr folder. +vcpkg_download_distfile(LICENSE + URLS https://raw.githubusercontent.com/antlr/antlr4/master/LICENSE.txt + FILENAME "antlr4-copyright" + SHA512 c72ae3d5c9f3f07160405b5ca44f01116a9602d82291d6cd218fcc5ec6e8baf985e4baa2acf3d621079585385708bd171c96ef44dd808e60c40a48bc1f56c9ae +) +file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/antlr4 RENAME copyright) + +message(STATUS "Installing done") \ No newline at end of file diff --git a/ports/antlr4/static.patch b/ports/antlr4/static.patch new file mode 100644 index 0000000000..fb54c5ae40 --- /dev/null +++ b/ports/antlr4/static.patch @@ -0,0 +1,12 @@ +diff --git a/antlr4-common.h b/antlr4-common.h +index 197fd6d..34a62c8 100644 +--- a/antlr4-common.h ++++ b/antlr4-common.h +@@ -34,6 +34,7 @@ + #include + #include + ++#define ANTLR4CPP_STATIC + // Defines for the Guid class and other platform dependent stuff. + #ifdef _WIN32 + #pragma warning (disable: 4250) // Class inherits by dominance.