I think the result of the proposal explains some rewriting in .go files, at 
least.

I believe the conventional wisdom/best practices here are:

- Use separate, parallel files to hold platform- (or tag-) specific code, 
e.g:
    init_darwin.go, init_linux.go, init_windows.go

- Prefer setting environment variables GOOS, GOARCH to passing build tag 
arguments
    
I think these quick guides are up-to-date:
https://www.digitalocean.com/community/tutorials/building-go-applications-for-different-operating-systems-and-architectures
https://www.digitalocean.com/community/tutorials/customizing-go-binaries-with-build-tags

I hope this helps, I'm not convinced I'm not missing something :)
On Friday, November 11, 2022 at 1:27:22 PM UTC-8 sandee...@gmail.com wrote:

> probably yes - the implementation of tools for this feature. 
>
> If you see the accepted proposal there is this example:
> https://go.googlesource.com/proposal/+/master/design/draft-gobuild.md
> // +build 386 windows,amd64 windows
>
> BTW, I am on go1.19.3.
>
> On Friday, November 11, 2022 at 3:18:44 PM UTC-6 harr...@spu.edu wrote:
>
>> Is this relevant? https://github.com/golang/go/issues/41184
>>
>> On Friday, November 11, 2022 at 1:16:02 PM UTC-8 se...@liao.dev wrote:
>>
>>> You'll need to provide more info if you want to report a bug:
>>>
>>> ```
>>> main » cat main.go         
>>> // +build production
>>> // +build linux
>>>
>>> package main
>>>
>>> 21:13:35 ~/tmp/testrepo0017 0:00:00
>>> main » go fmt .
>>> main.go
>>>
>>> 21:13:39 ~/tmp/testrepo0017 0:00:00
>>> main » cat main.go
>>> //go:build production && linux
>>> // +build production,linux
>>>
>>> package main
>>> ```
>>> - sean
>>>
>>>
>>> On Fri, Nov 11, 2022 at 9:13 PM Sandeep Kalra <sandee...@gmail.com> 
>>> wrote:
>>>
>>>> and similar issue with other style of adding tags as well
>>>>
>>>> i.e. 
>>>> // +build tag1,tag2
>>>> // +build tag1 tag2
>>>> etc
>>>>
>>>> On Friday, November 11, 2022 at 3:07:40 PM UTC-6 Sandeep Kalra wrote:
>>>>
>>>>> Original code:
>>>>>
>>>>> $ cat production.go
>>>>>
>>>>> //go:build production
>>>>> // +build production
>>>>> // +build linux  <<<<<< Notice This Line as my production code is only 
>>>>> available on Linux
>>>>>
>>>>> package main
>>>>>
>>>>> const (
>>>>>     isProductionCode = true
>>>>>     isDebugCode      = false
>>>>> )
>>>>>
>>>>> $ go fmt production.go
>>>>> production.go
>>>>> $ cat production.go
>>>>> //go:build production
>>>>> // +build production
>>>>>
>>>>> package main
>>>>>
>>>>> const (
>>>>>     isProductionCode = true
>>>>>     isDebugCode      = false
>>>>> )
>>>>> Thanks,
>>>>> Sandeep Kalra
>>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "golang-nuts" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to golang-nuts...@googlegroups.com.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/golang-nuts/9a4b4e5d-4c3f-469d-8cc5-6a268152cd5an%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/golang-nuts/9a4b4e5d-4c3f-469d-8cc5-6a268152cd5an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/d9dde962-34f1-413b-bd5d-43798bd5516dn%40googlegroups.com.

Reply via email to