[{"data":1,"prerenderedAt":369},["ShallowReactive",2],{"project-21350939":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":41,"post_text":43,"what":44,"said":76,"maker_in_thread":196,"shape":206,"grid":210,"attempts":331,"same_week":332,"maker_shows":34,"maker_hidden":361,"reader_version":362,"card":363},"21350939","xmake","A Modern C\u002FC++ build tools (Simple, Fast, Cross-platform)","title","Show HN: A Modern C\u002FC++ build tools (Simple, Fast, Cross-platform)","https:\u002F\u002Fxmake.io\u002F#\u002F","xmake.io","waruqi",1571966850,2019,89,56,543,2195,25,"notable","dev_tools","build system","cli",[24,25,26,27],"c++ build system","cross-platform build","cmake alternative","package management","debated",-0.045,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,5,0,4,12,{"design":37,"docs":39,"idea":40},{"positive":33,"critical":38},2,{"positive":33,"critical":33},{"positive":38,"critical":38},[33,33,33,33,33,33,33,42,42,31,31,33,31,32,33,33,33,33,31,42,33,33,33,33,33,33,33,33,32,42,33,33,32,33,33,33,33,33,33,33],1,null,{"problem":45,"audience":57,"pricing":43,"motivation":43,"time_to_build":43,"stack":63,"openness":74,"stage":75,"team_size":75},{"value":46,"source":47,"evidence":48},"Building C\u002FC++ projects across platforms with a simpler build description","commenter",[49,53],{"id":50,"by":51,"text":52},"21354107","Crinus","I'm not sure how it differs from all the existing tools really, it looks like it does more or less the same stuff, just slightly differently. Also it does look like it requires…",{"id":54,"by":55,"text":56},"21353868","ensiferum","This tool is (again) just rehashing the same old build methods only with different syntax. I'd really like to see a build tool that would take things to the next level. - As a…",{"value":58,"source":59,"evidence":60},"C and C++ developers","inferred",[61],{"id":62},"post",[64],{"value":65,"source":66,"evidence":67},"Lua","maker",[68,71],{"id":69,"by":11,"text":70},"21352646","Xmake built-in luajit, without any external dependencies, can be used after installation, although most distributions have built-in python, but there are still many systems that…",{"id":72,"by":11,"text":73},"21352670","I haven't compared it to bazel, but if you like the description style of xmake for the project or you like lua, you can try it.","open_source","unknown",{"praise":77,"objections":96,"requests":114,"questions":133,"alternatives":156},[78,88],{"value":79,"source":47,"evidence":80},"Useful package management with third-party repository support (vcpkg, conan)",[81,85],{"id":82,"by":83,"text":84},"21358808","alexeiz","Using third party package repositories is a really, really smart move. This way you can expand the universe of available C++ packages by combining different package management…",{"id":86,"by":11,"text":87},"21351025","Xmake has its own package management repository.https:\u002F\u002Fgithub.com\u002Fxmake-io\u002Fxmake-repo And it also supports self-built distributed repositories and third-party repositories (e.g.…",{"value":89,"source":47,"evidence":90},"Looks cool and good job",[91,95],{"id":92,"by":93,"text":94},"21352698","tbfly","Great tools, good job!",{"id":86,"by":11,"text":87},[97,105,109],{"value":98,"source":47,"evidence":99},"Adds yet another build tool users must install and learn",[100,101],{"id":50,"by":51,"text":52},{"id":102,"by":103,"text":104},"21354225","pornel","There are so many nice build tools for C, but unfortunately very few users will be happy to install and learn yet another tool. And no matter which build system you choose,…",{"value":106,"source":47,"evidence":107},"Requires xmake installed on the target system",[108],{"id":50,"by":51,"text":52},{"value":110,"source":47,"evidence":111},"Little difference from existing build tools",[112,113],{"id":50,"by":51,"text":52},{"id":54,"by":55,"text":56},[115,119],{"value":116,"source":47,"evidence":117},"Automatic include path and library detection",[118],{"id":54,"by":55,"text":56},{"value":120,"source":47,"evidence":121},"Compare with CMake and Bazel",[122,125,129],{"id":123,"by":11,"text":124},"21352805","Ok, I will look at it, as far as I know, cmake seems to be more popular than bazel. At least I rarely see projects that use bazel, although I don’t like the syntax of cmake very…",{"id":126,"by":127,"text":128},"21353070","Onanymous","yes, I guess comparing with the de-facto standard solution (cmake) would be more beneficial.",{"id":130,"by":131,"text":132},"21352113","jauer","Looks cool, but is there a tl;dr for why I’d use this instead of something like Bazel?",[134,142,149],{"value":135,"source":47,"evidence":136},"Why not use Bazel instead",[137,138],{"id":130,"by":131,"text":132},{"id":139,"by":140,"text":141},"21352739","troysand","You should definitely take a look at bazel. This is not say bazel is better than the one you wrote but cleary bazel is becoming a industry standard making other build tools…",{"value":143,"source":47,"evidence":144},"Why Lua instead of Python",[145],{"id":146,"by":147,"text":148},"21352404","loose_pants","Why not Python? Syntax is much cleaner and there’s nothing you can’t achieve. Even performance is on par.",{"value":150,"source":47,"evidence":151},"Whether indentation has semantic meaning in the config syntax",[152],{"id":153,"by":154,"text":155},"21351924","jchw","Interesting. Visually, it looks a lot like Meson's Mesonfile syntax, in some ways. Does the indentation have semantic meaning at all, or is it just to convey a hierarchy?",[157,169,177,182,189],{"value":158,"source":47,"evidence":159},"CMake",[160,164,168],{"id":161,"by":162,"text":163},"21353234","pnako","Bazel is an obscure tool mostly used by Google. The industry standard is CMake.",{"id":165,"by":166,"text":167},"21353307","jandrewrogers","The de facto industry standard is cmake, I have never even seen bazel in the wild and I work across many companies on big C++ code bases. I primarily use meson, and have even…",{"id":123,"by":11,"text":124},{"value":170,"source":47,"evidence":171},"Bazel",[172,173],{"id":139,"by":140,"text":141},{"id":174,"by":175,"text":176},"21367822","lightgreen","CMake today is autotools yesterday: too buggy, too unreliable, fragile, slow. Bazel is properly made build system. Basically, CM does not guarantee correct incremental builds,…",{"value":178,"source":47,"evidence":179},"Meson",[180,181],{"id":165,"by":166,"text":167},{"id":153,"by":154,"text":155},{"value":183,"source":47,"evidence":184},"SCons",[185],{"id":186,"by":187,"text":188},"21352614","bsder","Scons is effectively dead, and I wish people would start removing it from the Python build systems web pages. Meson is written in Python and isn't dead. However, Meson requires a…",{"value":190,"source":47,"evidence":191},"MSBuild",[192],{"id":193,"by":194,"text":195},"21354681","pjmlp","I have it easy, MSBuild, and when not on Windows, CMake. Then again, I just need it to the extend of Java\u002F.NET mixed builds with C++.",{"comments":197,"answered":31,"key":198},8,[199,202,203],{"id":200,"text":201},"21354155","xmake can also support to generatr other project file. e.g. makefile vsproj cmakelist compile_command and etc. ``` xmake project -k makefile xmake project -k vs2019 xmake project…",{"id":86,"text":87},{"id":204,"text":205},"21352628","Yes.",{"commenters":207,"max_depth":197,"maker_replies":197,"first_comment_mins":208,"lifespan_hours":209},31,15,134,[211,215,216,219,221,224,226,228,230,233,235,237,239,240,242,245,246,250,253,255,257,260,262,265,267,269,271,272,274,275,276,279,282,284,286,288,289,290,291,294,296,297,299,301,303,306,307,310,311,314,317,320,322,325,327,330],[212,33,33,213,214,33],"21353394","other\u002Fneutral\u002Fnone","kstenerud",[193,33,33,213,194,33],[217,33,33,213,218,33],"21355687","jstimpfle",[220,33,33,213,218,33],"21357430",[222,33,33,223,175,33],"21367851","commenter\u002Fneutral\u002Fnone",[225,33,33,223,218,33],"21368286",[227,33,33,223,175,33],"21368475",[229,33,33,223,218,33],"21369516",[231,33,33,213,232,33],"21354696","skocznymroczny",[50,42,42,234,51,33],"project\u002Fcritical\u002Fdesign",[200,42,33,236,11,42],"project\u002Fneutral\u002Fnone",[238,42,42,234,51,33],"21355326",[86,38,33,236,11,42],[153,38,31,241,154,33],"project\u002Fneutral\u002Fdesign",[243,38,31,241,244,33],"21352395","kitd",[204,38,33,223,11,42],[247,38,31,248,249,33],"21352924","maker\u002Fneutral\u002Fdocs","derin",[251,38,33,252,11,42],"21352939","maker\u002Fpositive\u002Fdocs",[82,38,32,254,83,33],"project\u002Fpositive\u002Fidea",[256,31,33,213,55,33],"21353590",[258,31,33,223,259,33],"21353647","imtringued",[261,31,33,223,55,33],"21353746",[263,31,33,223,264,33],"21354563","jcelerier",[266,31,33,223,55,33],"21354893",[268,31,33,223,264,33],"21355758",[130,34,31,270,131,33],"project\u002Fneutral\u002Fidea",[72,34,33,270,11,42],[139,34,42,273,140,33],"project\u002Fcritical\u002Fidea",[123,34,33,236,11,42],[126,34,33,223,127,33],[277,34,33,213,278,33],"21353142","flohofwoe",[280,34,33,223,281,33],"21353321","reubenmorais",[283,34,33,223,175,33],"21367834",[285,34,33,223,281,33],"21398504",[287,34,33,223,175,33],"21367839",[161,34,33,223,162,33],[174,34,33,223,175,33],[165,34,33,223,166,33],[292,34,33,223,293,33],"21355643","new_realist",[295,34,32,254,244,33],"21352872",[54,32,42,273,55,33],[298,32,33,223,51,33],"21354066",[300,32,33,223,264,33],"21354758",[102,302,33,213,103,33],6,[92,304,32,305,93,33],7,"project\u002Fpositive\u002Fnone",[146,197,31,270,147,33],[308,197,33,223,309,33],"21352598","jacobush",[186,197,33,223,187,33],[312,197,33,313,11,42],"21352653","maker\u002Fneutral\u002Fnone",[315,197,33,223,316,33],"21352778","jhasse",[318,197,33,223,319,33],"21353374","mandor",[321,197,33,213,309,33],"21373099",[323,197,33,223,324,33],"21352962","EliRivers",[326,197,33,223,187,33],"21360812",[328,197,33,223,329,33],"21353880","stochastic_monk",[69,197,33,270,11,42],[],[333,337,342,347,352,357],{"id":334,"name":335,"points":336,"category":20},"21371642","pg_flame",321,{"id":338,"name":339,"points":340,"category":341},"21394222","Karma",151,"productivity",{"id":343,"name":344,"points":345,"category":346},"21403091","Micro CRM",147,"web_saas",{"id":348,"name":349,"points":350,"category":351},"21391195","SlowTube",143,"creative",{"id":353,"name":354,"points":355,"category":356},"21351695","MNML",127,"games",{"id":358,"name":359,"points":360,"category":356},"21353123","Aim and Shoot",118,false,"v2",{"id":364,"name":5,"line":6,"ai":361,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":365,"top":18,"kw":366,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":367,"url":9,"mix":368,"praise":79,"objection":98,"sub":21},21350939,-0.04,[24,25,26,27],"0000000113303500003100000000510050000000",[31,32,33,34],1793990997161]