Merge release packaging updates and fixes
This commit is contained in:
commit
355b1b850a
660
CHANGES.txt
660
CHANGES.txt
@ -1,658 +1,6 @@
|
||||
--------
|
||||
--------------------
|
||||
5.0 (in progress)
|
||||
--------
|
||||
--------------------
|
||||
|
||||
* Completely overhauled the platform support; too many changes to list
|
||||
* Enabled per-project configurations and platforms
|
||||
* Enabled per-configuration file lists
|
||||
* Enabled per-configuration toolset selection
|
||||
* Added custom build rules
|
||||
* Added support for Visual Studio 2012 (James Whitworth)
|
||||
* Added token expansion
|
||||
* Added external() to reference non-Premake generated projects
|
||||
* Added remove...() API to remove values from list fields
|
||||
* Folders containing single sub-folder now trimmed from top of source tree
|
||||
* Added debugformat with C7 support for Visual Studio
|
||||
* The error message for invalid flags now includes the offending value
|
||||
* The include() function will now include each file only once
|
||||
* The include() function can now include specific files
|
||||
* path.translate() now defaults to Windows-style backslashes
|
||||
* Added NoWarnings flag for Visual Studio (xpol)
|
||||
* Added debugcommand for Visual Studio (xpol)
|
||||
* Bug 1674173: Allow source files to have the same name
|
||||
* Added forceinclude() to specify forced include files
|
||||
* Visual Studio C# projects now support architectures
|
||||
* Visual Studio C# projects now support pre- and post-build commands
|
||||
* Visual Studio C# projects can now link to external files
|
||||
* Added NoImplicitLink flag to force explicit linking from Visual Studio
|
||||
* Decoupled VS2010 smaller type checks (/RTCc) from extra warnings (/W4)
|
||||
* Added NoRuntimeChecks flag to disable Visual Studio default checks
|
||||
* Generated Visual Studio GUIDs are now deterministic
|
||||
* Added support for Visual Studio solution groups
|
||||
* Added dependson() to specify non-linking dependencies (Alexey Orlov)
|
||||
* Added startproject() to specify solution startup project
|
||||
* Added ExcludeFromBuild flag to mark source files as non-buildable
|
||||
* Added MultiProcessorCompile flag to run multiple compiler processes
|
||||
* Fixed assembly references for Visual Studio Managed C++ projects
|
||||
* Improved Xbox 360 support
|
||||
* Added support for Clang C/C++ compiler
|
||||
* Added external files and virtual paths for C# projects (James Whitworth)
|
||||
* Added ReleaseRuntime build flag (Tarmo Pikaro)
|
||||
* Added Component, Form, and UserControl build actions
|
||||
* Added usingdirs() to specify C++/CLI additional using directories (João Matos / triton)
|
||||
* Added support for VS utility projects (Michael Skibbe / tbasnoopy)
|
||||
* Added ATL support for VS (Michael Skibbe / tbasnoopy)
|
||||
|
||||
-------
|
||||
4.4 (in progress)
|
||||
-------
|
||||
|
||||
* Feature 1590022: Source file filtering and grouping
|
||||
* Feature 3100379: C# support for Visual Studio 2010
|
||||
* Feature 1657833: Set working directory for debugging
|
||||
* Added support for Haiku OS (Yuriy O'Donnell)
|
||||
* Patch 2963313: Enable setting .NET framework version (Justen Hyde)
|
||||
* Switched PS3 builds from GCC to SNC
|
||||
* Ignore NoRTTI flag for Managed C++ projects (Nick Darnell)
|
||||
* Added host.is64bit
|
||||
* Added os.getversion
|
||||
* Patch 3140456: Explicitly specify architecture for VS StaticLib (Brian Mazza)
|
||||
* Bug 3119793: Fixed ClCompile blocks with vs10 and PCH (Dan Dunham)
|
||||
* Bug 2920784: Symbol visibility in Xcode3 libraries (burnson2)
|
||||
* Bug 3133743: Sets ONLY_ACTIVE_ARCH = YES in Xcode debug builds (James Wynn)
|
||||
* Properly pass return codes back to shell in release builds
|
||||
* Bug 3135734: Remove WholeProgramOptimization setting in vs10 (doug)
|
||||
* Bug 3138377: Link dependencies ignored within "SharedLib" configuration
|
||||
* Bug 3163703: pdb file being set in the wrong section. (hodsondd)
|
||||
* Bug 3157645: Full path for xcode frameworks
|
||||
* Bug 3232160: Environment variables are cut off
|
||||
* Patch 3043933 Allow gmake to use static lib when shared lib of same name exists (Jonathan Derque)
|
||||
* Bug 3294459: vs10 x86_64 using incorrect debug format for minimal rebuild (learner)
|
||||
* Bug 3297634: Special characters in directory name Xcode3 (jdale)
|
||||
* Feature 3100194: English aliases for Optimize flags
|
||||
* Bug 3308203: Incorrect relative paths for gmake sibling static libraries (Adam)
|
||||
* Bug 3277343: SM_SERVERR2 is not always defined by default (Martin Ridgers)
|
||||
* Added os.stat
|
||||
* Bug 3381149: Path of PCH source file in VS10 not being translated (intyuh)
|
||||
* Patch 3021550: Add Wii homebrew platform (Pathogen David)
|
||||
* Patch 3035550: Make/Distcc outputs dependencies to wrong location
|
||||
* Patch 3138574: NoImportLib ignored in Windows makefiles dependencies (rjmyst3)
|
||||
* Patch 3367641: Remove warnings in Xcode 4
|
||||
* Patch 3372345: Gmake action's PCHs don't work with Mingw (Martin Ridgers)
|
||||
* Patch 3317329: Support vstudio CompileAs for mixed-language projects (xpol)
|
||||
* Patch 3337372: Improved precompiled header support (Anders Ericsson)
|
||||
* Patch 3401184: Fix Gmake LDFLAGS generation order (Adam Petrone)
|
||||
* Patch 3381066: Fix VS2010 project references
|
||||
* Added debug environment variable support for Visual Studio
|
||||
* Added debug environment variable support for Codeblocks using gdb
|
||||
* Bug: Visual Studio 2010 forces x86 when platform is Native
|
||||
* Patch 3351583: _PREMAKE_COMMAND variable (Konstantin Tokarev)
|
||||
* Added new global _WORKING_DIR
|
||||
* Patch 3451928: VS2008 trying to build *.h files in C projects
|
||||
* Patch 3429777: Support for DragonFly BSD (Joachim de Groot)
|
||||
* Patch 3445049: Build fix for FreeBSD (Konstantin Tokarev)
|
||||
* Bug 3121217: Test suite fails on Linux x86_64: os.findlib broken
|
||||
* Patch 3428348: Add .gitignore file (Konstantin Tokarev)
|
||||
* Patch 3430158: Reorder LINKCMD for Gmake (rjmyst3)
|
||||
* Patch 3451212: Fix Visual Studio MFC with StaticRuntime
|
||||
* Patch 3463020: Add windres environment variable for makefiles (icebreaker)
|
||||
* Bug 3413866: Incorrect VS200x .csproj relative source paths
|
||||
* Patch 3111264: Allow path.join() to accept any number of args
|
||||
* Patch 3353975: Support usage of premake as a library (Konstantin Tokarev)
|
||||
* Patch 3505903: Fix VC2010 project reference paths (Pavel Czerný)
|
||||
* Patch 3305599: Add -Wextra to ExtraWarnings (ergosys)
|
||||
* Patch 3476176: Fix dependencies of precompiled header in makefile (Konstantin Tokarev)
|
||||
* Patch 3476176: Remove conditionals from makefile compiler assignments (Konstantin Tokarev)
|
||||
* Pull 1: Fixed path to Info.plist in Xcode projects (Adrien Anselme)
|
||||
* Patch 3367642: Add support for targetextension property to Xcode
|
||||
* Patch 3435716: Fix for PS3 config generation in VS2010 (Jake)
|
||||
* Patch 3441850: Use debug.traceback() as error handler (Konstantin Tokarev)
|
||||
* Patch 3462994: Make flag values case-insensitive (Konstantin Tokarev)
|
||||
* Patch 3466877: Removed -flat_namespace from Mac OS X flags (Konstantin Tokarev)
|
||||
* Pull 25: Add Unix support to os.getversion() (wfgleper)
|
||||
* Bug 268: Target extension not set properly for Visual Studio 2010
|
||||
* Allow command line override of makefile flags (Cameron Hart)
|
||||
* Fix linking to external libraries outside of project folder
|
||||
* Improve processing of ld.so.conf (Cameron Hart)
|
||||
* Patch 154: Fix .def file support for VS2010 (Riccardo Ghetta)
|
||||
* Patch 159: Validate all values passed to options (Moi_ioM)
|
||||
* Pull 11: Add support for Visual Studio 2012 (Oliver Schneider)
|
||||
* Bug 171: ImpLib used incorrectly in dependency paths
|
||||
* Bug 176: Target prefix breaks GCC linking
|
||||
* Initial support for Visual Studio 2013 (Igor Karatayev)
|
||||
|
||||
|
||||
-------
|
||||
4.3
|
||||
-------
|
||||
|
||||
* CHANGED LICENSE FROM GPLv2 TO BSD
|
||||
* Added Visual Studio 2010 C/C++ support (Liam Devine)
|
||||
* Added Solaris support (Dean Ross-Smith)
|
||||
* Added deployment and image options for Xbox360 (dvoid)
|
||||
* Patch 2963313: Enable setting .NET framework version (Justen Hyde)
|
||||
* Patch 2965229: Fix handling of '+' symbol in file patterns (Rachel Blum)
|
||||
* Patch 2997449: Print configuration with target (ergosys)
|
||||
* Patch 2997452: Suppress gmake's "nothing to be done" message (ergosys)
|
||||
* Patch 3011940: Add support for MFC (JTAnderson)
|
||||
* Patch 3053959: kind() crashes when called with no arguments (rjmyst3)
|
||||
* Bug 2997728: Project dependencies should be case-sensitive
|
||||
* Bug 3056381: Xcode project breaks on special chars
|
||||
* Bug 3007101: Generating PDB in Release builds is not supported
|
||||
* Bug 2971841: Gmake escaping of shell variable $(...) is broken
|
||||
* Fixed handling of icons in Xcode (bitshifter)
|
||||
* Added imagepath to set Xbox360 image file name (Jarod)
|
||||
* Patch 3063804: Set CompileAs flag for VS200x C projects (rjmyst3)
|
||||
* Implemented StaticRuntime flag for Xcode (William Burnson)
|
||||
* Improved portability of Mac OS X binaries (William Burnson)
|
||||
* Bug 3035545: The pattern { "./folder/*.c" } matches no files
|
||||
* Bug 3034222: StaticLib projects ignore linkoptions
|
||||
* Bug 3020382: GCC PCH not working
|
||||
* Bug 3016050: {"../Dir/file1.c","../../Dir/file2.c"} breaks Xcode (Stephane)
|
||||
* Bug 3015312: Makefiles are not quoted correctly
|
||||
* Bug 3097868: Removes relative paths from vs2010 filters (Robert Konrad)
|
||||
* Bug 3095274: Pre-compiled header support missing for VS2010 target
|
||||
* Bug 3100062: vs2010 Runtime library selection
|
||||
|
||||
|
||||
-------
|
||||
4.2.1
|
||||
-------
|
||||
|
||||
* Feature 2944697: Add flag to disable Minimal Rebuild in Visual Studio
|
||||
* Patch 2928029: Add EnableSSE, EnableSSE2 flags
|
||||
* Patch 2936443: Expose configuration terms to scripts (Laurent Humbertclaude)
|
||||
* Bug 2928775: Error loading external Lua module with require()
|
||||
* Bug 2942438: Wrong runtime library linked
|
||||
* Bug 2931722: pchheader handling not consistent between tools
|
||||
* Bug 2958829: Files pattern matching including too many files
|
||||
* Bug 2953594: includedirs / libdirs converting absolute paths to relative
|
||||
* Bug 2936188: Improve handling for invalid values in lists
|
||||
|
||||
|
||||
-----
|
||||
4.2
|
||||
-----
|
||||
|
||||
- Feature 1526976: Add support for Apple Xcode 3
|
||||
- Feature 2900623: Add targetsuffix and implibsuffix properties
|
||||
- Added project kind to list of configuration filters
|
||||
- Feature 2839002: Add gcc switch to improve header dependency generation (Johannes Spohr)
|
||||
- Feature 2832906: Global variable (_SCRIPT) for current script path
|
||||
- Feature 2905303: Enable better folder matching in file lists
|
||||
- Feature 2919629: Add help target for makefiles
|
||||
- Feature 2820644: Add Xbox360 deployment and image options
|
||||
- Bug 2909463: Fix Xcode handling of Obj-C++ .mm files
|
||||
- Bug 2903430: Using relative instead of absolute paths with $() macro
|
||||
- Bug 2910691: Duplicate build options
|
||||
- Bug 2910639: Nil reference on dylib project dependency
|
||||
- Bug 2872066: Two test failures in 4.1.2
|
||||
- Bug 2912756: dylibs missing lib prefix
|
||||
- Bug 2910202: Code::Blocks building C files as C++
|
||||
- Bug 2926917: Use target name for Visual Studio PDB file
|
||||
- Bug 2927604: Unable to build Premake with Visual Studio
|
||||
- Clean action now removes MonoDevelop .pidb files correctly
|
||||
- Added os.executef()
|
||||
|
||||
|
||||
-------
|
||||
4.1.2
|
||||
-------
|
||||
|
||||
- Fixed ManagedExtension setting for Visual Studio
|
||||
- Fixed os.match() bug for large result sets (David Raulo)
|
||||
- Patch 2840052: Order problem of static link
|
||||
- Patch 2802722: Floating Point Model Flags (Suigintou)
|
||||
- Patch 2865333: Support for ObjC and ObjC++ sources (Johannes Spohr)
|
||||
- Patch 2832852: Fix descriptions in cmd help (Sebastian Schuberth)
|
||||
- Patch 2832848: Show default script name in help (Sebastian Schuberth)
|
||||
|
||||
|
||||
-------
|
||||
4.1.1
|
||||
-------
|
||||
|
||||
- Use libtool instead of ar for Mac OS X Universal static libraries
|
||||
- Fixed Xbox 360 linker settings in Visual Studio
|
||||
- Remove platform-specific intermediate objects on clean
|
||||
- Bug 2819232: Buildoptions not used when creating Makefile for C#
|
||||
- Bug 2813297: OS X universal config should be "univ" (William Burnson)
|
||||
- Bug 2814179: Xbox 360 precompiled headers not working
|
||||
|
||||
|
||||
-----
|
||||
4.1
|
||||
-----
|
||||
|
||||
- Added support for cross-compiling target platforms
|
||||
- Added Xbox 360 support to Visual Studio 2005/2008
|
||||
- Added Mac OS X universal binary support
|
||||
- Added Playstation 3 support
|
||||
- Added precompiled header support for GCC
|
||||
- Support links and libdirs for Visual Studio static libraries
|
||||
- Fail gracefully when list is assigned to string field
|
||||
- Changed GCC flags to -fno-exceptions and -fno-rtti
|
||||
- Improved performance of configuration building step
|
||||
- Fixed crash when configuration is missing a kind
|
||||
- Patch 2031626: Support for additional manifest files (Colin Graf)
|
||||
- Patch 2558089: workaround for --as-needed/correct link order (idl0r)
|
||||
- Patch 2609028: verbose linking in makefile (kaidokert)
|
||||
- Bug 2564404: FatalWarnings has no effect with gmake target
|
||||
- Bug 2550759: pchheader option has wrong type
|
||||
- Bug 1900333: Parentheses in build path
|
||||
- Bug 2790865: SharedLib on OSX fixes (Ash Berlin)
|
||||
- Bug 2790882: Trailing slash in path.getabsolute (Ash Berlin)
|
||||
|
||||
RC2 -> RC3
|
||||
|
||||
- Bug 2805763: GCC PCH breaks on path
|
||||
- Bug 2709641: Location field does not propagate to projects
|
||||
- Bug 2675518: Dependencies wrong on config links
|
||||
- Bug 2152526: Code::Blocks doesn't build PCH correctly on GCC
|
||||
|
||||
RC1 -> RC2
|
||||
|
||||
- Removed additional MonoDevelop files in clean action
|
||||
- Fixed naming of system libraries in Visual Studio link step
|
||||
- Set OS to Windows when generating for Visual Studio
|
||||
- Bug 2801257: Linker error LNK1112 when cross-compiling for x64
|
||||
|
||||
|
||||
-----
|
||||
4.0
|
||||
-----
|
||||
|
||||
This version is a complete rewrite of Premake.
|
||||
|
||||
- A new, more readable and extensible syntax for projects
|
||||
- More robust syntax validation
|
||||
- A new command-line format, with better argument validation
|
||||
- Improved path handling across all project settings
|
||||
- Upgraded to Lua 5.1.4
|
||||
- Many, many bug fixes
|
||||
|
||||
RC4 -> Final
|
||||
|
||||
- Set Mac OS X linker flags for Code::Blocks
|
||||
- Bug 2533504: Files above project root not added to project
|
||||
|
||||
RC3 -> RC4
|
||||
|
||||
- Embed scripts instead of bytecodes to avoid portability issues
|
||||
- solution() and project() now only set the active object when
|
||||
called with a name; remains unchanged otherwise
|
||||
|
||||
RC2 -> RC3
|
||||
|
||||
- Bug: GCC Windows release builds of Premake4 crash on script errors
|
||||
- Patched Lua to load precompiled bytecodes on PPC architectures.
|
||||
- Display paths of generated files
|
||||
|
||||
RC1 -> RC2
|
||||
|
||||
- Enabled use of absolute Windows paths to different drive letter
|
||||
- Bug: Post-build commands run before build on Code::Blocks
|
||||
- Removed FatalWarnings build flag
|
||||
- Fixed GCC 4.2 warnings (Ryan Pusztai)
|
||||
- Enable Windows linking to shared libraries even with NoImportLib
|
||||
flag set (just in case)
|
||||
- Fixed handling of paths in links
|
||||
- Added "ToolsVersion" attribute to VS2005 and VS2008 C# projects
|
||||
- Fixed separator between library dependencies in C++ makefiles
|
||||
- Added missing os.copyfile() function
|
||||
- Bug: Sometimes takes a long time to complete on Linux
|
||||
- Enabled Lua popen support on Linux and Mac OS X
|
||||
|
||||
|
||||
-----
|
||||
3.7
|
||||
-----
|
||||
|
||||
- Updated Lua to 5.1.3
|
||||
- Added new CodeLite support target (Ryan Pusztai)
|
||||
- Added new cb-ow (Code::Blocks Open Watcom) target (Tim Channon)
|
||||
- Place OSX winexe's into Content/MacOS folder (William Burnson)
|
||||
- Sibling executables may now be listed in package.links
|
||||
- Bug 1520012: Improper Makefiles when filenames have spaces
|
||||
(Diaa Sami)
|
||||
- Bug 2045506: "no-exceptions" flag ignored for VS200x (Benoit Miller)
|
||||
- Bug 2034470: Error in cmd line error handler
|
||||
- Bug 2114152: package or config table isn't generated automatically
|
||||
|
||||
|
||||
-----
|
||||
3.6
|
||||
-----
|
||||
|
||||
- Patch 1946122: Add support for VS2008 (Ryan Pusztai)
|
||||
- Patch 1913448: Win32 crash when using '--clean --usetargetpath'
|
||||
(David Walters)
|
||||
- Patch 1771168: luaL_getn speed optimization (Richard O'Grady)
|
||||
- Bug 1939089: Premake segfault on Linux/PPC (Fabio Till)
|
||||
- Fixed "bad argument #2 to 'chdir'" error
|
||||
- Disable -MMD on multiple -arch flags (poor man's Universal binary
|
||||
support)
|
||||
|
||||
|
||||
-----
|
||||
3.5
|
||||
-----
|
||||
|
||||
- Prevent creation of import libraries on OS X
|
||||
- Improved handling of dylibs on OS X
|
||||
- Patch 1771977: Ability to compile C source as C++ in Code::Blocks
|
||||
(Ryan Pusztai)
|
||||
- Bug 1804810: out-implib not present in linux gnu compler toolchain
|
||||
- Bug 1806949: .Net reference paths are broken when bindir is specified
|
||||
- Bug 1806960: Make clean does not remove .mdb files
|
||||
- Bug 1831389: Makefiles stored in subdirs contain no targets on
|
||||
first run
|
||||
|
||||
|
||||
-----
|
||||
3.4
|
||||
-----
|
||||
|
||||
- Added `no-pch` flag to suppress precompiled headers
|
||||
- Added App.config support to GNU makefiles
|
||||
- Add os.mkdir() to script environment
|
||||
- Makefile now creates target directory before copying .NET references
|
||||
- Feature 1520182: Enhanced file-handling functions
|
||||
- Bug 531878: Problems with relative paths
|
||||
- Bug 1723867: Config-specific post-build on GNU target (Benoit Miller)
|
||||
- Bug 1596826: XML targets doesn't escape xml entities
|
||||
- Bug 1600155: Core dump due to newpackage() and matchfiles()
|
||||
- Bug 1608895: resgen command shown
|
||||
- Bug 1639730: Output filename is not set
|
||||
- Bug 1729227: non-portable executable with relative library path
|
||||
- Bug 1559951: default clean rule removes package dir
|
||||
- Patch 1733674: PCH support for Code::Block targets (Ryan Pusztai)
|
||||
- Patch 1746563: Ability to specify GUID for VS targets (Ryan Pusztai)
|
||||
- Patch 1754867: Creating import lib of different name (Ryan Pusztai)
|
||||
|
||||
|
||||
-----
|
||||
3.3
|
||||
-----
|
||||
|
||||
- Added support for prebuild, prelink, and postbuild commands
|
||||
- Added `target` global variable to script environment
|
||||
- Added build flag `no-edit-and-continue`
|
||||
- Added build flags `native-wchar` and `no-native-wchar`
|
||||
- Added build flag `no-manifest`
|
||||
- Added build flag `seh-exceptions` (VS2005 only)
|
||||
- Added `resdefines`, `respaths`, and `resoptions`
|
||||
- Added `prebuildcommands`, `prelinkcommands`, and `postbuildcommands`
|
||||
- Added `pchheader` and `pchsource` (Visual Studio only)
|
||||
- Feature 1337547: Package-level bindir and libdir
|
||||
- Bug 1565755: Generated makefiles do not work with MSYS
|
||||
- Bug 1587955: Target path ignored for libs
|
||||
- Bug 1574725: Static library extension for "gnu" target
|
||||
- Bug 1522861: Fixed by using "ar -rcs" instead of "ar -cr && ranlib"
|
||||
- Bug 1656816: Mkdir set wrong directory rights
|
||||
- Bug 1655595: Compile/build problem on FreeBSD
|
||||
- Bug: "gnu" clean rule doesn't work in cmd.exe
|
||||
- Improved behavior of Linux findlib()
|
||||
- Updated Code::Blocks support to latest project version
|
||||
(major="1" minor="6")
|
||||
- Patch 1681666: GNU targets always show the console if kind = 'winexe'
|
||||
|
||||
|
||||
-----
|
||||
3.2
|
||||
-----
|
||||
|
||||
- Added support for Code::Blocks
|
||||
- Updated MonoDevelop support
|
||||
- Upgraded Lua to 5.0.3
|
||||
- Added new matchdirs() to Lua script environment
|
||||
- Expose list of packages as _PACKAGES global in Lua
|
||||
- Turn off edit-and-continue in release builds with symbols
|
||||
- Bug 1559873: libpaths inserts extra space after -L
|
||||
|
||||
|
||||
-----
|
||||
3.1
|
||||
-----
|
||||
|
||||
- Added support for Visual Studio 2005
|
||||
- Added support for Windows resources to GNU make target
|
||||
- Added path handling functions to Lua environment
|
||||
- Added matchrecursive() for recursive file searches
|
||||
- Added os.fileexists() function to Lua environment
|
||||
- Added os.appendfile() function to Lua environment
|
||||
- Changed `monoresgen` to `resgen` to keep up with Mono project
|
||||
- Added `mono2` .NET compiler set for Mono .NET 2.0 support
|
||||
- Feature 1096677: exclude files from matchfiles (package.excludes)
|
||||
- Bug 1439463: VS2003 RTTI problem
|
||||
- Bug 1439446: GNU Makefile problem under Mingw32
|
||||
- Bug 1422068: package.path="." causes bad makefiles
|
||||
- Bug 1431530: makefile target fails when project path specified
|
||||
|
||||
|
||||
-----
|
||||
3.0
|
||||
-----
|
||||
|
||||
- Upgraded Lua interpreter to version 5.0.1
|
||||
- The options table now stores simple values, rather than tables
|
||||
- Completed MonoDevelop support
|
||||
- Improved .NET resource handling for GNU generator
|
||||
- Added unit test suite
|
||||
- Merged Scott Graham unicode build flag patch
|
||||
- Removed package.warninglevel in favor of extra-warnings flag
|
||||
- Added package.targetprefix
|
||||
- Overhauled structure of generated GNU makefiles
|
||||
- Added --os command line option
|
||||
- Fixed bug 1268588: Use gcc to link C packages
|
||||
- Fixed bug 1363306: GNU C# should copy referenced DLLs
|
||||
|
||||
|
||||
-----
|
||||
2.4
|
||||
-----
|
||||
|
||||
- Added chdir() to Lua script environment
|
||||
- Merged Thomas Harning's patch for .NET resources on GNU
|
||||
- Fixed bug 1194702: Can't put multiple packages in same directory
|
||||
- Fixed bug in GNU shared library builds (doh!)
|
||||
- Added target 'vs2002' to replace 'vs7'
|
||||
|
||||
|
||||
-----
|
||||
2.3
|
||||
-----
|
||||
|
||||
- Added 'project.config[]' with 'bindir' and 'libdir'
|
||||
- Merged Scott Graham's "warninglevel" patch.
|
||||
- Fixed bug 1153484: Import lib in wrong directory.
|
||||
- Fixed bug 1013352: Stack overflow with large projects.
|
||||
- Fixed bug 945406: package.files, bad value = crash
|
||||
|
||||
|
||||
-----
|
||||
2.2
|
||||
-----
|
||||
|
||||
- Worked around VS.NET bug for .NET assemblies > 64K.
|
||||
- Added --very-verbose flag to GNU generator.
|
||||
- GNU generator now supports assembly sources.
|
||||
|
||||
|
||||
-----
|
||||
2.1
|
||||
-----
|
||||
|
||||
- File extension of generated binaries can now be set
|
||||
with config.targetextension.
|
||||
- Windows targets now handle .def files for DLLs.
|
||||
|
||||
|
||||
-----
|
||||
2.0
|
||||
-----
|
||||
|
||||
- Can now specify build actions per file
|
||||
- Include paths are now passed to VC7 resource compiler
|
||||
- Removed _WIN32 define from Cygwin makefiles
|
||||
- Added package.objdir to set intermediates directory
|
||||
- Added rmdir() to Lua script environment
|
||||
- A big bag of bug fixes
|
||||
|
||||
|
||||
-----
|
||||
1.9
|
||||
-----
|
||||
|
||||
- Made verbose mode even more verbose.
|
||||
- posix.c now builds properly as C.
|
||||
- Fixed package dependency generation for GNU and VS2003.
|
||||
- Display Lua version number in usage text.
|
||||
- Fixed VS link between *.aspx and *.aspx.cs files.
|
||||
- Fixed VS link between *.resx and *.cs files.
|
||||
- Fixed *.d file generation for gcc 2.9x.
|
||||
- Unified various help options under '--help'.
|
||||
- Bin and Lib paths can now be arbitrarily long.
|
||||
- linkoptions are now applied in VC6 and VC7 projects.
|
||||
|
||||
|
||||
-----
|
||||
1.8
|
||||
-----
|
||||
|
||||
- Added support for ASP.NET projects.
|
||||
- Fixed a bug in VC6 support for static libraries.
|
||||
- matchfiles() now uses package path instead of script path.
|
||||
- Added --verbose option.
|
||||
- No longer apply no-rtti and no-exceptions to *.c files.
|
||||
|
||||
|
||||
-----
|
||||
1.7
|
||||
-----
|
||||
|
||||
- Location of generated project files can now be specified with
|
||||
the project.path variable.
|
||||
- Inter-package dependencies are fixed for GNU makefiles.
|
||||
- No longer need to execute in same directory as project script.
|
||||
- Added "c" language specifier.
|
||||
- Added support for .resx and .config files to C# projects.
|
||||
- Added support for full assembly names in .NET references.
|
||||
- Fixed handling of paths in package.target variable.
|
||||
- Improved support for SharpDevelop.
|
||||
- Started support for OS X.
|
||||
- Added support for Digital Mars compiler.
|
||||
|
||||
|
||||
-------
|
||||
1.6.1
|
||||
-------
|
||||
|
||||
- VS7 generator crashed if a package was built before one of its
|
||||
dependencies. Now immediately assigns UUID before processing.
|
||||
|
||||
|
||||
-----
|
||||
1.6
|
||||
-----
|
||||
|
||||
- Added support for Visual Studio 2003 and SharpDevelop.
|
||||
- Added binaries directory as a reference path for VS7.
|
||||
|
||||
|
||||
-----
|
||||
1.5
|
||||
-----
|
||||
|
||||
- Added initial support for building static libraries.
|
||||
- Added "no-main" flag, prevents overriding WinMain() on
|
||||
Windows builds.
|
||||
- Added "--no-rtti" and "no-exceptions" build flags to
|
||||
disable those C++ features.
|
||||
- Display error message when project has no packages.
|
||||
- Moved VC7 *.pdb files into intermediates directory.
|
||||
|
||||
|
||||
-----
|
||||
1.4
|
||||
-----
|
||||
|
||||
- Bug fixes to the path manipulation routines.
|
||||
- GNU makefiles are regenerated when premake scripts change.
|
||||
|
||||
|
||||
-----
|
||||
1.3
|
||||
-----
|
||||
|
||||
- Added support for the Cygwin environment.
|
||||
- Added "static-runtime" build flag to statically link against C/C++
|
||||
standard runtime libraries.
|
||||
- Bug fixes to Visual Studio 6 and 7 generators and path reversing
|
||||
algorithm.
|
||||
|
||||
|
||||
-----
|
||||
1.2
|
||||
-----
|
||||
|
||||
- Standardized format of command-line options.
|
||||
- Can now handle custom command-line options in script.
|
||||
- Added new function findlib().
|
||||
- Added new C++ build flag "managed" for writing C++ .NET code.
|
||||
- Can now use open-source C# compilers in VS6 generator.
|
||||
- Several bug fixes to the VS7 generator.
|
||||
|
||||
|
||||
-----
|
||||
1.1
|
||||
-----
|
||||
|
||||
- Added support for custom build configurations. Added "optimize",
|
||||
"optimize-size", "optimize-speed", and "no-symbols" flags to control
|
||||
build settings.
|
||||
- Added matchfiles() to select files using wildcards.
|
||||
- Added "unsafe" flag for C# projects.
|
||||
- Added newpackage() function for creating new package objects inline,
|
||||
instead of creating separate scripts.
|
||||
- Changed include() to dopackage() and option() to addoption(). The old
|
||||
versions have been kept for compatibility, but will be deprecated
|
||||
eventually.
|
||||
- Major cleanup of the source code.
|
||||
|
||||
|
||||
-----
|
||||
1.0
|
||||
-----
|
||||
|
||||
- Fixed a bug related to the reference paths in VS7 C# projects.
|
||||
- Display a warning message if a reference path can't be found.
|
||||
- Automatically create bin and lib directories if they do not exist.
|
||||
- GNU C# projects will now properly use the configured library paths.
|
||||
|
||||
|
||||
-------
|
||||
0.9.2
|
||||
-------
|
||||
|
||||
- Added --with-mono and --with-pnet options.
|
||||
- VS7 C# projects will now properly use the configured library paths.
|
||||
|
||||
|
||||
-------
|
||||
0.9.1
|
||||
-------
|
||||
|
||||
- Switched to Lua (http://www.lua.org/) for project script parsing.
|
||||
- Add support for custom project options.
|
||||
- Changed 'type' to 'kind' to avoid conflict with Lua function of the
|
||||
same name.
|
||||
- Changed 'conexe' to 'exe' because I liked it better.
|
||||
- Changed 'library' to 'dll' for C# projects to keep things consistent.
|
||||
|
||||
|
||||
-------
|
||||
0.9.0
|
||||
-------
|
||||
|
||||
- Initial public release.
|
||||
See https://bitbucket.org/premake/premake-dev/wiki/What's_New_in_5.0
|
||||
for the complete list of changes from the Premake 4.x series.
|
||||
|
@ -1,4 +1,4 @@
|
||||
Copyright (c) 2003-2014 Jason Perkins and individual contributors.
|
||||
Copyright (c) 2003-2015 Jason Perkins and individual contributors.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
@ -11,7 +11,7 @@ are permitted provided that the following conditions are met:
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the Premake nor the names of its contributors may be
|
||||
3. Neither the name of Premake nor the names of its contributors may be
|
||||
used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
|
@ -2,7 +2,7 @@ PREMAKE
|
||||
A build configuration tool
|
||||
Core module
|
||||
|
||||
Copyright (C) 2002-2014 by Jason Perkins
|
||||
Copyright (C) 2002-2015 by Jason Perkins
|
||||
Distributed under the terms of the BSD License, see LICENSE.txt
|
||||
|
||||
The Lua language and runtime library is (C) TeCGraf, PUC-Rio.
|
||||
|
31
premake4.lua
31
premake4.lua
@ -103,34 +103,3 @@
|
||||
value = "path",
|
||||
description = "Set the output location for the generated files"
|
||||
}
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Use the embed action to convert all of the Lua scripts into C strings, which
|
||||
-- can then be built into the executable. Always embed the scripts before creating
|
||||
-- a release build.
|
||||
--
|
||||
|
||||
dofile("scripts/embed.lua")
|
||||
|
||||
newaction {
|
||||
trigger = "embed",
|
||||
description = "Embed scripts in scripts.c; required before release builds",
|
||||
execute = doembed
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
-- Use the release action to prepare source and binary packages for a new release.
|
||||
-- This action isn't complete yet; a release still requires some manual work.
|
||||
--
|
||||
|
||||
|
||||
dofile("scripts/release.lua")
|
||||
|
||||
newaction {
|
||||
trigger = "release",
|
||||
description = "Prepare a new release (incomplete)",
|
||||
execute = dorelease
|
||||
}
|
||||
|
11
premake5.lua
11
premake5.lua
@ -32,9 +32,18 @@
|
||||
}
|
||||
|
||||
|
||||
newaction {
|
||||
trigger = "package",
|
||||
description = "Creates source and binary packages",
|
||||
execute = function ()
|
||||
include (path.join(corePath, "scripts/package.lua"))
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
newaction {
|
||||
trigger = "release",
|
||||
description = "Prepare a new release (incomplete)",
|
||||
description = "Merges current branch to release; updates version and tags",
|
||||
execute = function ()
|
||||
include (path.join(corePath, "scripts/release.lua"))
|
||||
end
|
||||
|
@ -1,43 +1,39 @@
|
||||
PREMAKE RELEASE CHECKLIST
|
||||
-------------------------
|
||||
|
||||
VERSION NUMBERS
|
||||
|
||||
4.0
|
||||
4.0-beta1
|
||||
4.0-rc1
|
||||
4.0.1
|
||||
|
||||
PREP
|
||||
|
||||
* Make sure all tests pass on Windows and POSIX
|
||||
* Create working branch for release prep
|
||||
|
||||
* Make sure branch passes all tests on all platforms
|
||||
|
||||
* Update CHANGELOG.txt as needed
|
||||
|
||||
* Prep release announcement for forums
|
||||
|
||||
* Run `premake5 embed`
|
||||
|
||||
* Commit all changes to premake-stable
|
||||
|
||||
* Tag premake-stable with the version number and push
|
||||
|
||||
* Pull changes to premake-dev
|
||||
|
||||
|
||||
BUILD
|
||||
|
||||
* On each platform, run `premake5 release {version} binary`
|
||||
|
||||
* On one platform, run `premake5 release {version} source`
|
||||
|
||||
* If desired, copy binary to local path
|
||||
|
||||
* Upload packages (in release/) to SourceForge
|
||||
|
||||
|
||||
RELEASE
|
||||
|
||||
* Merge working branch with release branch
|
||||
|
||||
* Update the version number in src/host/premake.c and commit
|
||||
|
||||
* Merge working branch to development branches
|
||||
|
||||
* Close working branch
|
||||
|
||||
|
||||
PACKAGE
|
||||
|
||||
* Run `premake5 package release source` (from Posix ideally)
|
||||
|
||||
* On each platform, run `premake5 package release binary`
|
||||
|
||||
|
||||
PUBLISH
|
||||
|
||||
* Upload packages to SourceForge
|
||||
|
||||
* On SourceForge, set package properties (platform, etc.)
|
||||
|
||||
* Update the download page
|
||||
|
184
scripts/package.lua
Normal file
184
scripts/package.lua
Normal file
@ -0,0 +1,184 @@
|
||||
---
|
||||
-- Create a source or binary release package.
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
-- Helper function: run a command while hiding its output.
|
||||
---
|
||||
|
||||
local function execQuiet(cmd, ...)
|
||||
cmd = string.format(cmd, unpack(arg)) .. " > _output_.log 2> _error_.log"
|
||||
local z = os.execute(cmd)
|
||||
os.remove("_output_.log")
|
||||
os.remove("_error_.log")
|
||||
return z
|
||||
end
|
||||
|
||||
|
||||
---
|
||||
-- Check the command line arguments, and show some help if needed.
|
||||
---
|
||||
|
||||
local usage = 'usage is: package <branch> <type>\n' ..
|
||||
' <branch> is the name of the release branch to target\n' ..
|
||||
' <type> is one of "source" or "binary"\n'
|
||||
|
||||
if #_ARGS ~= 2 then
|
||||
error(usage, 0)
|
||||
end
|
||||
|
||||
local branch = _ARGS[1]
|
||||
local kind = _ARGS[2]
|
||||
|
||||
if kind ~= "source" and kind ~= "binary" then
|
||||
error(usage, 0)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Make sure I've got what I've need to be happy.
|
||||
--
|
||||
|
||||
local required = { "hg", "make", "gcc", "premake5", "zip" }
|
||||
for _, value in ipairs(required) do
|
||||
local z = execQuiet("%s --version", value)
|
||||
if z ~= 0 then
|
||||
error("required tool '" .. value .. "' not found", 0)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Figure out what I'm making.
|
||||
--
|
||||
|
||||
os.chdir("..")
|
||||
local text = os.outputof(string.format('hg cat -r %s src/host/premake.c', branch))
|
||||
local _, _, version = text:find('VERSION%s*"([%w%p]+)"')
|
||||
|
||||
local pkgName = "premake-" .. version
|
||||
local pkgExt = ".zip"
|
||||
|
||||
if not os.is("windows") and kind == "binary" then
|
||||
pkgExt = ".tar.gz"
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Make sure I'm sure.
|
||||
--
|
||||
|
||||
printf("")
|
||||
printf("I am about to create a %s package", kind:upper())
|
||||
printf(" ...named release/%s%s", pkgName, pkgExt)
|
||||
printf(" ...from the %s branch", branch)
|
||||
printf("")
|
||||
printf("Does this look right to you? If so, press [Enter] to begin.")
|
||||
io.read()
|
||||
|
||||
|
||||
--
|
||||
-- Pull down the release branch.
|
||||
--
|
||||
|
||||
print("Preparing release folder")
|
||||
os.mkdir("release")
|
||||
os.chdir("release")
|
||||
os.rmdir(pkgName)
|
||||
|
||||
print("Cloning source code")
|
||||
z = os.executef("hg clone .. -r %s %s", branch, pkgName)
|
||||
if z ~= 0 then
|
||||
error("clone failed", 0)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Make absolutely sure the embedded scripts have been updated
|
||||
--
|
||||
|
||||
print("Updating embedded scripts...")
|
||||
os.chdir(pkgName)
|
||||
z = execQuiet("premake5 embed")
|
||||
if z ~= 0 then
|
||||
error("failed to update the embedded scripts", 0)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Clear out files I don't want included in any packages.
|
||||
--
|
||||
|
||||
print("Cleaning up the source tree...")
|
||||
os.rmdir("packages")
|
||||
|
||||
local modules = table.join(".", os.matchdirs("modules/*"))
|
||||
for _, module in ipairs(modules) do
|
||||
for _, name in ipairs { ".hg", ".hgcheck" } do
|
||||
os.rmdir(path.join(module, name))
|
||||
end
|
||||
for _, name in ipairs { ".DS_Store", ".gitignore", ".hgignore", ".hgsub*", ".hgtags" } do
|
||||
os.remove(path.join(module, name))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Generate a source package.
|
||||
--
|
||||
|
||||
if kind == "source" then
|
||||
|
||||
print("Generating project files...")
|
||||
execQuiet("premake5 /to=build/vs2005 vs2005")
|
||||
execQuiet("premake5 /to=build/vs2008 vs2008")
|
||||
execQuiet("premake5 /to=build/vs2010 vs2010")
|
||||
execQuiet("premake5 /to=build/vs2012 vs2012")
|
||||
execQuiet("premake5 /to=build/vs2013 vs2013")
|
||||
execQuiet("premake5 /to=build/gmake.windows /os=windows gmake")
|
||||
execQuiet("premake5 /to=build/gmake.unix /os=linux gmake")
|
||||
execQuiet("premake5 /to=build/gmake.macosx /os=macosx gmake")
|
||||
|
||||
print("Creating source code package...")
|
||||
os.chdir("..")
|
||||
execQuiet("zip -r9 %s-src.zip %s/*", pkgName, pkgName)
|
||||
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Create a binary package for this platform. This step requires a working
|
||||
-- GNU/Make/GCC environment. I use MinGW on Windows as it produces the
|
||||
-- smallest binaries.
|
||||
--
|
||||
|
||||
if kind == "binary" then
|
||||
|
||||
print("Building binary...")
|
||||
execQuiet("premake5 gmake")
|
||||
z = execQuiet("make config=release")
|
||||
if z ~= 0 then
|
||||
error("build failed")
|
||||
end
|
||||
|
||||
os.chdir("bin/release")
|
||||
|
||||
local name = string.format("%s-%s%s", pkgName, os.get(), pkgExt)
|
||||
if os.is("windows") then
|
||||
execQuiet("zip -9 %s premake5.exe", name)
|
||||
else
|
||||
execQuiet("tar czvf %s premake5", name)
|
||||
end
|
||||
|
||||
os.copyfile(name, path.join("../../../", name))
|
||||
os.chdir("../../..")
|
||||
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Clean up
|
||||
--
|
||||
|
||||
os.rmdir(pkgName)
|
@ -1,96 +1,94 @@
|
||||
--
|
||||
-- Prepare a new Premake release. This is still incomplete and some manual
|
||||
-- work is needed to get everything packaged up. See RELEASE.txt in this
|
||||
-- folder for the full checklist.
|
||||
--
|
||||
-- Info on using Mercurial to manage releases:
|
||||
-- http://hgbook.red-bean.com/read/managing-releases-and-branchy-development.html
|
||||
-- http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/
|
||||
-- Merge the current working branch to Premake's release branch,
|
||||
-- update the embedded version number and tag the result.
|
||||
--
|
||||
|
||||
|
||||
function dorelease()
|
||||
local z
|
||||
|
||||
--
|
||||
-- Helper function: runs a command (formatted, with optional arguments) and
|
||||
-- suppresses any output. Works on both Windows and POSIX. Might be a good
|
||||
-- candidate for a core function.
|
||||
-- Helper function: run a command while hiding its output.
|
||||
--
|
||||
|
||||
local function exec(cmd, ...)
|
||||
cmd = string.format(cmd, unpack(arg))
|
||||
local z = os.execute(cmd .. " > output.log 2> error.log")
|
||||
os.remove("output.log")
|
||||
os.remove("error.log")
|
||||
local function execQuiet(cmd, ...)
|
||||
cmd = string.format(cmd, unpack(arg)) .. " > _output_.log 2> _error_.log"
|
||||
local z = os.execute(cmd)
|
||||
os.remove("_output_.log")
|
||||
os.remove("_error_.log")
|
||||
return z
|
||||
end
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Make sure a version was specified
|
||||
-- Check the command line arguments, and show some help if needed.
|
||||
--
|
||||
|
||||
if #_ARGS ~= 2 then
|
||||
error("** Usage: release [version] [source | binary]", 0)
|
||||
local usage = 'usage is: release <version>\n' ..
|
||||
' <version> is of the form "5.0", "5.0.1", or "5.0-rc1"\n'
|
||||
|
||||
local usage = 'usage is: release <version>\n'
|
||||
if #_ARGS ~= 1 then
|
||||
error(usage, 0)
|
||||
end
|
||||
|
||||
local version = _ARGS[1]
|
||||
local kind = _ARGS[2]
|
||||
|
||||
local pkgname = "premake-" .. version
|
||||
|
||||
|
||||
--
|
||||
-- Look for required utilities
|
||||
-- Make sure I've got what I've need to be happy.
|
||||
--
|
||||
|
||||
local required = { "hg", "make", "gcc" }
|
||||
local required = { "hg" }
|
||||
for _, value in ipairs(required) do
|
||||
z = exec("%s --version", value)
|
||||
local z = execQuiet("%s --version", value)
|
||||
if z ~= 0 then
|
||||
error("** '" .. value .. "' not found", 0)
|
||||
error("required tool '" .. value .. "' not found", 0)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Pre-release checklist
|
||||
-- Figure out what I'm doing.
|
||||
--
|
||||
|
||||
print( "")
|
||||
print( "BEFORE RUNNING THIS SCRIPT follow the checklist in RELEASE.txt" )
|
||||
print( "")
|
||||
print( "Press [Enter] to begin.")
|
||||
os.chdir("..")
|
||||
local branch = os.outputof("hg branch"):gsub("%s+$", "")
|
||||
|
||||
|
||||
--
|
||||
-- Make sure I'm sure.
|
||||
--
|
||||
|
||||
printf("")
|
||||
printf("I am about to")
|
||||
printf(" ...merge %s to the release branch", branchName)
|
||||
printf(" ...update the embedded version to \"%s\"", version)
|
||||
printf(" ...commit and tag the merged result")
|
||||
printf("")
|
||||
printf("Does this look right to you? If so, press [Enter] to begin.")
|
||||
io.read()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
--
|
||||
-- Everything below this needs to be reworked for Mercurial
|
||||
--
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Check out the release tagged sources to releases/
|
||||
-- Pull down the release branch.
|
||||
--
|
||||
|
||||
print("Downloading release tag...")
|
||||
print("Preparing release folder")
|
||||
|
||||
os.mkdir("release")
|
||||
os.chdir("release")
|
||||
os.rmdir(version)
|
||||
|
||||
os.rmdir(pkgname)
|
||||
z = exec( "hg clone -r %s .. %s", version, pkgname)
|
||||
print("Cloning source code")
|
||||
local z = os.executef("hg clone .. -r release %s", branch, version)
|
||||
if z ~= 0 then
|
||||
error("** Failed to download tagged sources", 0)
|
||||
error("clone failed", 0)
|
||||
end
|
||||
|
||||
os.chdir(pkgname)
|
||||
|
||||
--
|
||||
-- Merge in the release working branch.
|
||||
--
|
||||
|
||||
error("merge of release working branch is not yet implemented")
|
||||
|
||||
|
||||
--
|
||||
@ -99,6 +97,7 @@ function dorelease()
|
||||
|
||||
print("Updating version number...")
|
||||
|
||||
os.chdir(version)
|
||||
io.input("src/host/premake.c")
|
||||
local text = io.read("*a")
|
||||
text = text:gsub("HEAD", version)
|
||||
@ -108,106 +107,7 @@ function dorelease()
|
||||
|
||||
|
||||
--
|
||||
-- Make absolutely sure the embedded scripts have been updated
|
||||
-- Commit and tag merged revision.
|
||||
--
|
||||
|
||||
print("Updating embedded scripts...")
|
||||
|
||||
z = exec("premake5 embed")
|
||||
if z ~= 0 then
|
||||
error("** Failed to update the embedded scripts", 0)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Generate source packaging
|
||||
--
|
||||
|
||||
if kind == "source" then
|
||||
|
||||
--
|
||||
-- Remove extra directories
|
||||
--
|
||||
|
||||
print("Cleaning up the source tree...")
|
||||
|
||||
os.rmdir("samples")
|
||||
os.rmdir("packages")
|
||||
os.rmdir(".hg")
|
||||
os.rmdir(".hgignore")
|
||||
os.rmdir(".hgtags")
|
||||
|
||||
|
||||
--
|
||||
-- Generate project files to the build directory
|
||||
--
|
||||
|
||||
print("Generating project files...")
|
||||
|
||||
exec("premake5 /to=build/vs2005 vs2005")
|
||||
exec("premake5 /to=build/vs2008 vs2008")
|
||||
exec("premake5 /to=build/vs2010 vs2010")
|
||||
exec("premake5 /to=build/gmake.windows /os=windows gmake")
|
||||
exec("premake5 /to=build/gmake.unix /os=linux gmake")
|
||||
exec("premake5 /to=build/gmake.macosx /os=macosx /platform=universal32 gmake")
|
||||
exec("premake5 /to=build/codeblocks.windows /os=windows codeblocks")
|
||||
exec("premake5 /to=build/codeblocks.unix /os=linux codeblocks")
|
||||
exec("premake5 /to=build/codeblocks.macosx /os=macosx /platform=universal32 codeblocks")
|
||||
exec("premake5 /to=build/codelite.windows /os=windows codelite")
|
||||
exec("premake5 /to=build/codelite.unix /os=linux codelite")
|
||||
exec("premake5 /to=build/codelite.macosx /os=macosx /platform=universal32 codelite")
|
||||
exec("premake5 /to=build/xcode3 /platform=universal32 xcode3")
|
||||
|
||||
|
||||
--
|
||||
-- Create source package
|
||||
--
|
||||
|
||||
print("Creating source code package...")
|
||||
|
||||
os.chdir("..")
|
||||
exec("zip -r9 %s-src.zip %s/*", pkgname, pkgname)
|
||||
|
||||
--
|
||||
-- Create a binary package for this platform. This step requires a working
|
||||
-- GNU/Make/GCC environment. I use MinGW on Windows.
|
||||
--
|
||||
|
||||
else
|
||||
|
||||
print("Building platform binary release...")
|
||||
|
||||
exec("premake5 /platform=universal32 gmake")
|
||||
exec("make config=%s", iif(os.is("macosx"), "releaseuniv32", "release"))
|
||||
|
||||
local fname
|
||||
os.chdir("bin/release")
|
||||
if os.is("windows") then
|
||||
fname = string.format("%s-windows.zip", pkgname)
|
||||
exec("zip -9 %s premake5.exe", fname)
|
||||
else
|
||||
fname = string.format("%s-%s.tar.gz", pkgname, os.get())
|
||||
exec("tar czvf %s premake5", fname)
|
||||
end
|
||||
|
||||
os.copyfile(fname, "../../../" .. fname)
|
||||
os.chdir("../../..")
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Upload files to SourceForge
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Clean up
|
||||
--
|
||||
|
||||
os.rmdir(pkgname)
|
||||
|
||||
print("")
|
||||
print( "Finished.")
|
||||
|
||||
end
|
||||
error("commit and tag of merged branch is not yet implemented")
|
||||
|
@ -82,7 +82,7 @@
|
||||
|
||||
if (_OPTIONS["version"]) then
|
||||
printf(versionhelp, _PREMAKE_VERSION)
|
||||
return 1
|
||||
return 0
|
||||
end
|
||||
|
||||
if (_OPTIONS["help"]) then
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
|
||||
#define VERSION "HEAD"
|
||||
#define COPYRIGHT "Copyright (C) 2002-2014 Jason Perkins and the Premake Project"
|
||||
#define COPYRIGHT "Copyright (C) 2002-2015 Jason Perkins and the Premake Project"
|
||||
#define PROJECT_URL "https://bitbucket.org/premake/premake-dev/wiki"
|
||||
#define ERROR_MESSAGE "Error: %s\n"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user