Click here to Skip to main content
14,302,341 members

Free Tools

This forum is for discussing and recommending Free tools for software development. Please post direct links to tools, and not just links to pages that review or list tools.No shareware and no commercial products allowed. Please report spammers by voting to remove their messages and reporting their accounts.

 
GeneralWhat is the best programming IDE for JAVA ? Pin
java programmer00729-Aug-16 2:52
professionaljava programmer00729-Aug-16 2:52 
GeneralRe: What is the best programming IDE for JAVA ? Pin
Nathan Minier29-Aug-16 4:05
professionalNathan Minier29-Aug-16 4:05 
GeneralRe: What is the best programming IDE for JAVA ? Pin
Richard MacCutchan29-Aug-16 4:09
protectorRichard MacCutchan29-Aug-16 4:09 
GeneralRe: What is the best programming IDE for JAVA ? Pin
Saravanan Sundaresan26-Sep-16 6:26
professionalSaravanan Sundaresan26-Sep-16 6:26 
GeneralRe: What is the best programming IDE for JAVA ? Pin
shirleyschloss28-Oct-16 20:07
membershirleyschloss28-Oct-16 20:07 
GeneralRe: What is the best programming IDE for JAVA ? Pin
Kevin McFarlane15-Mar-17 1:58
memberKevin McFarlane15-Mar-17 1:58 
GeneralNeural Network Playground Pin
0x01AA17-Aug-16 22:09
professional0x01AA17-Aug-16 22:09 
NewsA make-like build utility based on Lua Pin
waruqi5-Jul-16 22:45
memberwaruqi5-Jul-16 22:45 

Introduction


xmake is a make-like build utility based on lua.

The project focuses on making development and building easier and provides many features (.e.g package, install, plugin, macro, action, option, task ...),
so that any developer can quickly pick it up and enjoy the productivity boost when developing and building project.

Features

  • Create projects and supports many project templates
  • Support c/c++, objc/c++, swift and assembly language
  • Automatically probe the host environment and configure project
  • Provide some built-in actions (config, build, package, clean, install, uninstall and run)
  • Provide some built-in plugins (doxygen, macro, project)
  • Provide some built-in macros (batch packaging)
  • Describe the project file using lua script, more flexible and simple
  • Custom packages, platforms, plugins, templates, tasks, macros, options and actions
  • Do not generate makefile and build project directly
  • Support multitasking with argument: -j

Actions

  • config: Configure project before building.
  • global: Configure the global options for xmake.
  • build: Build project.
  • clean: Remove all binary and temporary files.
  • create: Create a new project using template.
  • package: Package the given target
  • install: Install the project binary files.
  • uninstall: Uninstall the project binary files.
  • run: Run the project target.

Plugins

  • The doxygen plugin: Make doxygen document from source codes
  • The macro plugin: Record and playback commands
  • The hello plugin: A simple plugin demo to show 'hello xmake!'
  • The project plugin: Create the project file for IDE (.e.g makefile and vs, xcode in the feature ...)

Languages

  • C/C++
  • Objc/Objc++
  • Swift
  • Assembly

Platforms

  • Windows (x86, x64, amd64, x86_amd64)
  • Macosx (i386, x86_64)
  • Linux (i386, x86_64, cross-toolchains ...)
  • Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a)
  • iPhoneos (armv7, armv7s, arm64, i386, x86_64)
  • Watchos (armv7k, i386)
  • Mingw (i386, x86_64)

In the plans

  • Manage package and dependence
  • Download package automaticlly
  • Create package repository for porting other third-party source codes, it's goal is that one people port it and many people shared.
  • Implement more plugins
  • Create more project file for IDE (.e.g vs, xcode ..)

Examples


Create a c++ console project:
   xmake create -l c++ -t 1 console
or xmake create --language=c++ --template=1 console

Project xmakefile: xmake.lua
target("console")
    set_kind("binary")
    add_files("src/*.c") 

Configure project:

This is optional, if you compile the targets only for linux, macosx and windows and the default compilation mode is release.
   xmake f -p iphoneos -m debug
or xmake f --plat=macosx --arch=x86_64
or xmake f -p windows
or xmake config --plat=iphoneos --mode=debug
or xmake config --plat=android --arch=armv7-a --ndk=xxxxx
or xmake config -p linux -a i386
or xmake config -p mingw --cross=i386-mingw32- --toolchains=/xxx/bin
or xmake config -p mingw --sdk=/mingwsdk
or xmake config --help

Compile project:
   xmake
or xmake -r
or xmake --rebuild

Run target:
   xmake r console
or xmake run console

Package all:
   xmake p
or xmake package
or xmake package console
or xmake package -o /tmp
or xmake package --output=/tmp

Package all archs using macro:
   xmake m package 
or xmake m package -p iphoneos
or xmake m package -p macosx -f "-m debug" -o /tmp/
or xmake m package --help

Install targets:
   xmake i
or xmake install
or xmake install console
or xmake install -o /tmp
or xmake install --output=/tmp

If you need known more detailed usage,please refer to documents
or run:
   xmake -h
or xmake --help
or xmake config --help
or xmake package --help
or xmake macro --help
...

The simple xmake.lua file:
-- the debug mode
if is_mode("debug") then

    -- enable the debug symbols
    set_symbols("debug")

    -- disable optimization
    set_optimize("none")
end

-- the release mode
if is_mode("release") then

    -- set the symbols visibility: hidden
    set_symbols("hidden")

    -- enable fastest optimization
    set_optimize("fastest")

    -- strip all symbols
    set_strip("all")
end

-- add target
target("test")

    -- set kind
    set_kind("static")

    -- add files
    add_files("src/*.c") 

Projects


Some projects using xmake:

Generalfree tool to design user interface Pin
aahamdan4-Jul-16 6:33
memberaahamdan4-Jul-16 6:33 
GeneralRe: free tool to design user interface Pin
Eddy Vluggen4-Jul-16 6:43
mveEddy Vluggen4-Jul-16 6:43 
GeneralRe: free tool to design user interface Pin
Richard MacCutchan4-Jul-16 6:43
protectorRichard MacCutchan4-Jul-16 6:43 
GeneralRe: free tool to design user interface Pin
aahamdan4-Jul-16 10:36
memberaahamdan4-Jul-16 10:36 
GeneralRe: free tool to design user interface Pin
Richard MacCutchan4-Jul-16 21:21
protectorRichard MacCutchan4-Jul-16 21:21 
GeneralRe: free tool to design user interface Pin
Alize Camp4-Jul-16 9:59
professionalAlize Camp4-Jul-16 9:59 
GeneralLogExpert Pin
Michael Martin27-Jun-16 20:49
professionalMichael Martin27-Jun-16 20:49 
GeneralAwesome MQTT spy tool Pin
Mike Hankey13-Jun-16 10:42
professionalMike Hankey13-Jun-16 10:42 
GeneralTool Image2ICO Pin
Matthew Hazlett11-Jun-16 15:45
memberMatthew Hazlett11-Jun-16 15:45 
GeneralRe: Tool Image2ICO Pin
Michael Martin28-Jun-16 2:59
professionalMichael Martin28-Jun-16 2:59 
GeneralRe: Tool Image2ICO Pin
Alize Camp4-Aug-16 14:56
professionalAlize Camp4-Aug-16 14:56 
QuestionGithub fork problem (SOLVED) Pin
Super Lloyd22-May-16 23:29
memberSuper Lloyd22-May-16 23:29 
AnswerRe: Github fork problem (SOLVED) Pin
Richard Deeming23-May-16 1:56
mveRichard Deeming23-May-16 1:56 
GeneralRe: Github fork problem (SOLVED) Pin
Super Lloyd23-May-16 3:36
memberSuper Lloyd23-May-16 3:36 
GeneralRe: Github fork problem (SOLVED) Pin
Alize Camp12-Aug-16 7:01
professionalAlize Camp12-Aug-16 7:01 
GeneralRe: Github fork problem (SOLVED) Pin
Super Lloyd12-Aug-16 16:38
memberSuper Lloyd12-Aug-16 16:38 
GeneralOpen Source Backup System Pin
Brisingr Aerowing6-May-16 17:24
professionalBrisingr Aerowing6-May-16 17:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.